日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

sql集合

發布時間:2025/3/15 编程问答 41 豆豆
生活随笔 收集整理的這篇文章主要介紹了 sql集合 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

?

SQL 修改表列名

在sql server中修改表的列名,可以使用sp_rename

sp_rename 'table.oldcolumn','newcolumn','column'

table是表名,oldcolumn 是原來的列名,newcolumn是新的列名

注意:newcolumn 前面不要有表名,否則,更改后的列名為table.newcolumn

?

查詢一張表中根據某一字段重復的紀錄

例如 表 tbl_person_Card 中有一字段 cardNumber ,此字段是不應該重復的,但是數據分析 cardNumber 有重復的紀錄,如何查詢出重復的紀錄的 id 是多少呢? 如下:

select id, cardNumber from tbl_person_Card where id not in
(
?? select max(id) as id from tbl_person_Card group by cardNumber
)

這樣就查詢出了重復的紀錄的 id 和 cardNumber

select * from tbl_person_Card where cardNumber = '6392910000000144' 即可將重復紀錄查詢出來分析原因。


SQL Server:定時作業 job 的設置方法

如果在SQL Server 里需要定時或者每隔一段時間執行某個存儲過程或3200字符以內的SQL語句時,可以用管理->SQL Server代理->作業來實現。

  1、管理->SQL Server代理->作業(按鼠標右鍵)->新建作業->

  2、新建作業屬性(常規)->名稱[自定義本次作業的名稱]->啟用的方框內是勾號->

  分類處可選擇也可用默認的[未分類(本地)]->所有者默認為登錄SQL Server用戶[也可選其它的登錄]->

  描述[填寫本次工作詳細描述內容];

  [ 創建作業分類的步驟:

?   SQL Server代理->作業->右鍵選所有任務->添加、修改、刪除 ]

  3、新建作業屬性(步驟)->新建->步驟名[自定義第一步驟名稱]->類型[Transact-SQL(TSQL)腳本]->

??   數據庫[要操作的數據庫]->命令
??
???? [ 如果是簡單的SQL直接寫進去即可,也可用打開按鈕輸入一個已寫好的*.sql文件
?????? 如果要執行存儲過程,填
?????? exec p_procedure_name v_parameter1,[ v_parameter2…v_parameterN]
????? ]
?????
?? ->確定
?? (如果有多個步驟,可以再次調用下面的新建按鈕;也可以對已有的多個步驟插入、編輯、刪除);

  4、建作業屬性(調度)->新建調度->名稱[自定義調度名稱]->啟用的方框內是勾號->調度->反復出現->

?? 更改[調度時間表]->確定
??
?? (如果只要保存此作業,不要定時做可以把啟用的方框內是勾號去掉);

  5、建作業屬性(通知)->用默認的通知方法就好[當作業失敗時,寫入Windows應用程序系統日志] ->確定。

  跟作業執行相關的一些SQL Server知識:

  SQLSERVERAGENT服務必須正常運行,啟動它的NT登錄用戶要跟啟動SQL Server數據庫的NT登錄用戶一致。

  點作業右鍵可以查看作業執行的歷史記錄情況,也可以立即啟動作業和停止作業。


  最近在看作業歷史記錄時,發現有的作業記錄的歷史記錄多,有的作業記錄的記錄的歷史記錄少.

  如何能使某些作業按各自的需求,保留一段時間.比如保留一個月的歷史記錄.

  看了SQL Server的在線幫助文檔,里面介紹說:

  在管理->SQL Server代理->右鍵選屬性->作業系統->限制作業歷史記錄日志的大小->

  作業歷史記錄日志的最大大小(行數)??? 默認為1000??? 如果某臺機器的作業數量很多,一定要提高它,例如為100000

  每個作業歷史記錄日志的最大行數????? 默認為100???? 如果作業每天執行兩次,需要保留一個月的日志,可以設為60

  它們之間有一個相互制約關系, 我們可以根據自己的需要來改.

  如果SQL Server服務器改過機器名, 管理是舊名稱時建立的job的時候可能會遇到

  錯誤14274: 無法添加、更新或刪除從MSX服務器上發起的作業(或其步驟或調度)

  看了Microsoft的文檔:http://support.microsoft.com/default.aspx?scid=kb;en-us;281642

  說SQL Server 2000系統里msdb..sysjobs 里originating_server 字段里存的是原來的服務器的名稱.

  24X7在用的系統肯定不能按上面Microsoft的文檔說的那樣把名字改回來又改過去。

  于是想,msdb..sysjobs 能否update originating_server 字段成現在在用的新服務器名?

use msdb

select * from sysjobs

  找到originating_server 字段還是舊服務器的job_id, 然后執行update語句:

update sysjobs set originating_server='new_server_name'
where job_id='B23BBEBE-A3C1-4874-A4AB-0E2B7CD01E14'

  (所影響的行數為 1 行)

  這樣就可以添加、更新或刪除那些曾經出error 14274 的作業了。


  如果想把作業由一臺機器遷移到另一臺機器,可以先保留好創建作業的腳本, 然后在另一臺機器上運行。

  導出所有作業的創建腳本操作步驟:

?   管理->SQL Server代理->作業(鼠標右鍵)->所有任務->生成SQL腳本->保存到操作系統下的某個sql文件

  導出某一個作業的創建腳本操作步驟:
?
?   管理->SQL Server代理->作業->選中待轉移的作業(鼠標右鍵)->所有任務->生成SQL腳本->保存到OS下的某個sql文件

  然后在目的服務器上運行剛才保存下來的創建作業的sql腳本。

  ( 如果建作業的用戶或者提醒的用戶不存在, 則會出錯;

  ? 我們需要在目的服務器上建立相關的WINDOWS用戶或者SQL Server數據庫登錄,

  ? 也可以修改創建作業的腳本, 把目的服務器上不存在的用戶替換成已經有的用戶。
?
?   如果生成日志的物理文件目錄不存在,也應該做相關的修改,例如d:\區轉f:\區等
?
  ? 字符串的 @command 命令里有分隔符號 go 也會出錯, 可以把它去掉)

?

SQl 語句(常見) 新建,刪除,修改表結構

create table [表名]
(
[自動編號字段] int IDENTITY (1,1) PRIMARY KEY ,
[字段1] nVarChar(50) default '默認值' null ,
[字段2] ntext null ,
[字段3] datetime,
[字段4] money null ,
[字段5] int default 0,
[字段6] Decimal (12,4) default 0,
[字段7] image null ,
)

刪除表:
Drop table [表名]

插入數據:
INSERT INTO [表名] (字段1,字段2) VALUES (100,'51WINDOWS.NET')

刪除數據:
DELETE FROM [表名] WHERE [字段名]>100

更新數據:
UPDATE [表名] SET [字段1] = 200,[字段2] = '51WINDOWS.NET' WHERE [字段三] = 'HAIWA'

新增字段:
ALTER TABLE [表名] ADD [字段名] NVARCHAR (50) NULL

刪除字段:
ALTER TABLE [表名] DROP COLUMN [字段名]

修改字段:
ALTER TABLE [表名] ALTER COLUMN [字段名] NVARCHAR (50) NULL

重命名表:(Access 重命名表,請參考文章:在Access數據庫中重命名表)
sp_rename '表名', '新表名', 'OBJECT'

新建約束:
ALTER TABLE [表名] ADD CONSTRAINT 約束名 CHECK ([約束字段] <= '2000-1-1')

刪除約束:
ALTER TABLE [表名] DROP CONSTRAINT 約束名

新建默認值
ALTER TABLE [表名] ADD CONSTRAINT 默認值名 DEFAULT '51WINDOWS.NET' FOR [字段名]

刪除默認值
ALTER TABLE [表名] DROP CONSTRAINT 默認值名

另外以上的只是SQL的語法在 ACCESS 下大部份也都是一樣的

項 一項查閱,并經自己使用驗證,確認在access 數據庫中添加自動編號字段使用以下方法比較合適: create table 數據表名稱 (id counter constraint primarykey primary key) 需要注意的地方是:第二個primary中間有空格,另外,關鍵字不區分大小寫. 另外自己最近發現的一種方法是: sql="create table mytb (id autoincrement(25,1) primary key,age int)" sql2="create table testtb (id autoincrement,age int,email char, primary key (id))" 其中在access中,autoincrement為自動編號類型字段,(25,1)分別為初始值及步長值,如果不寫的話,默認是1,1,primary key指定了主鍵,以上示例,兩種指定方法都可以

SQLserver中用convert函數轉換日期格式

select getdate()
結果:2003-12-28 16:52:00.107

select convert(char(8),getdate(),112)
結果:20031228

select convert(char(8),getdate(),108)
結果:16:52:00

select convert(char(8),getdate(),112)
????????????????????????????????? |
??????????????????????????? 指日期格式

規則如下:

1 101 美國 mm/dd/yyyy
2 102 ANSI yy.mm.dd
3 103 英國/法國 dd/mm/yy
4 104 德國 dd.mm.yy
5 105 意大利 dd-mm-yy
6 106 - dd mon yy
7 107 - mon dd, yy
8 108 - hh:mm:ss
- 9 或 109 默認值 + 毫秒 mon dd yyyy hh:mi:ss:mmmAM(或 PM)
10 110 美國 mm-dd-yy
11 111 日本 yy/mm/dd
12 112 ISO yymmdd
- 13 或 113? 歐洲默認值 + 毫秒 dd mon yyyy hh:mm:ss:mmm(24h)
14 114 - hh:mi:ss:mmm(24h)
- 20 或 120? ODBC 規范 yyyy-mm-dd hh:mm:ss[.fff]
- 21 或 121? ODBC 規范(帶毫秒) yyyy-mm-dd hh:mm:ss[.fff]
- 126(***) ISO8601 yyyy-mm-dd Thh:mm:ss:mmm(不含空格)
- 130* 科威特 dd mon yyyy hh:mi:ss:mmmAM
- 131* 科威特 dd/mm/yy hh:mi:ss:mmmAM

?

?select ? * ? from ? MY_TABLE ? where ? CONVERT(char(10),Copy_time,120) ? = ? '2004-01-07'?

?

?

C#.net連接數據庫

static void processTransactions()
??{

???OleDbConnection cn = new OleDbConnection(connectionString);
???cn.Open();
???OleDbTransaction Trans = cn.BeginTransaction();
???OleDbCommand cmd = cn.CreateCommand();
???cmd.Connection = cn;
???cmd.Transaction = Trans;

?? cmd.CommandText = "eFund_InsertD";
?? cmd.CommandType = CommandType.StoredProcedure;

???try
???{

???? ?OleDbParameter p1=cmd.Parameters.Add("@HEADER_NO",OleDbType.Integer);
???? ?OleDbParameter p2=cmd.Parameters.Add("@ST02",OleDbType.VarChar,4);
????? p1.Value? = xxx;
???? ?p2.Value? = xxx;

???? ?cmd.ExecuteNonQuery();

??? }

?? catch(Exception ex)
???{
????Trans.Rollback();
????cn.Close();
????file.Close();
???}
???finally
???{
????Trans.Commit();?
????cn.Close();
???}



轉載于:https://www.cnblogs.com/DaGuang/archive/2009/06/23/1509558.html

總結

以上是生活随笔為你收集整理的sql集合的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。