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

歡迎訪問 生活随笔!

生活随笔

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

编程问答

常用sql server 脚本

發布時間:2023/12/15 编程问答 47 豆豆
生活随笔 收集整理的這篇文章主要介紹了 常用sql server 脚本 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
  • --------------------------數據庫操作-------------------------- ??
  • --建數據庫 ??
  • create?database?yongfa365_com ??
  • on??
  • (?name?=?yongfa365_comt, ??
  • ??filename?=?'d:\yongfa365_com.mdf', ??
  • ??size?=?4, ??
  • ??maxsize?=?10, ??
  • ??filegrowth?=?1 ??
  • ) ??
  • ??
  • ??
  • --刪數據庫 ??
  • drop?database?yongfa365_com ??
  • ??
  • --備份數據庫 ??
  • backup?database?yongfa365_com?to?disk='d:\yongfa365_com.bak'??
  • ??
  • --批量收縮所有數據庫??適用SQL?Server?2000/2005 ??
  • DECLARE?cur?CURSOR?FOR?SELECT?name?FROM?Master..SysDatabases?WHERE?name?NOT?IN?('master','model','msdb','Northwind','pubs','tempdb') ??
  • DECLARE?@tb?SYSNAME ??
  • ??
  • OPEN?cur ??
  • FETCH?NEXT?FROM?cur?INTO?@tb ??
  • WHILE?@@fetch_status?=?0 ??
  • ????BEGIN??
  • ????????DUMP?TRANSACTION??@tb??WITH?NO_LOG ??
  • ????????BACKUP?LOG??@tb?WITH?NO_LOG ??
  • ????????DBCC?shrinkdatabase(@tb) ??
  • ????????FETCH?NEXT?FROM?cur?INTO?@tb ??
  • ????END??
  • CLOSE?cur ??
  • DEALLOCATE?cur? ??
  • ??
  • ??
  • --批量收縮所有數據庫??適用所有SQL?Server ??
  • DECLARE?cur?CURSOR?FOR?SELECT?name?FROM?Master..SysDatabases?WHERE?name?NOT?IN?('master','model','msdb','Northwind','pubs','tempdb') ??
  • DECLARE?@tb?SYSNAME ??
  • ??
  • OPEN?cur ??
  • FETCH?NEXT?FROM?cur?INTO?@tb ??
  • WHILE?@@fetch_status?=?0 ??
  • ????BEGIN??
  • ????????EXEC('ALTER?DATABASE?'+@tb+'?SET?RECOVERY?SIMPLE;') ??
  • ????????DBCC?shrinkdatabase?(@tb); ??
  • ????????EXEC('ALTER?DATABASE?'+@tb+'?SET?RECOVERY?FULL;') ??
  • ???????? ??
  • ????????FETCH?NEXT?FROM?cur?INTO?@tb ??
  • ????END??
  • CLOSE?cur ??
  • DEALLOCATE?cur? ??
  • ??
  • ??
  • --刪除數據庫日志文件(有時能刪幾十G) ??
  • DBCC?ERRORLOG ??
  • GO?6 ??
  • ??
  • --------------------------數據庫操作-------------------------- ??
  • ??
  • ??
  • ----------------------------表操作---------------------------- ??
  • --刪除表 ??
  • drop?table?movies ??
  • ??
  • --SQL?Server通用建表結構 ??
  • Create?Table?[test]?( ??
  • ??[Id]?int?primary?key?identity(1,1),--ID,主鍵,自動號 ??
  • ??[txtTitle]?nvarchar(255),--標題 ??
  • ??[txtContent]?nvarchar(MAX),--內容 ??
  • ??[Adder]?nvarchar(20),--添加人 ??
  • ??[AddTime]?datetime?Default?(getdate()),--提交時間 ??
  • ??[ModiTime]?datetime?Default?(getdate()),--修改時間 ??
  • ??[Hits]?int?Default?(0),--點擊數 ??
  • ??[Flags]?int?Default?(0)?,--標識 ??
  • ??[SortID]?int?Default?(0)--排序號 ??
  • ?) ??
  • ??
  • ??
  • --SQLite建表 ??
  • Create?Table?[test]?( ??
  • ??[Id]?integer?Primary?key?not?null, ??
  • ??[txtTitle]?text?null,--標題 ??
  • ??[txtContent]?text?null,--內容 ??
  • ??[Adder]??text?null,--添加人 ??
  • ??[AddTime]??text?DEFAULT?(datetime('now','localtime'))?not?null,--提交時間 ??
  • ??[ModiTime]??text?DEFAULT?(datetime('now','localtime'))?not?null,--修改時間 ??
  • ??[Hits]?integer?Default?(0)??not?null,--點擊數 ??
  • ??[Flags]?integer?Default?(0)??not?null?,--標識 ??
  • ??[SortID]?integer?Default?(0)??not?null--排序號 ??
  • ?) ??
  • ??
  • --ACCESS使用SQL語句建表 ??
  • CREATE?TABLE?表名?( ??
  • ??[Id]?AutoIncrement?NOT?NULL?, ??
  • ??[AddTime]?Date?NULL?, ??
  • ??[Hits]?Integer?NULL?, ??
  • ??[Title]?Text?(255)?NULL?, ??
  • ??[Remark]?Memo?NULL?, ??
  • ??[RMB]?Currency?NULL?, ??
  • ??[Flags]?bit?NULL?, ??
  • ?? ??
  • ??PRIMARY?KEY?(ID) ??
  • ) ??
  • ??
  • ??
  • --重命名表 ??
  • sp_rename?'表名',?'新表名',?'object'??
  • ----------------------------表操作---------------------------- ??
  • ??
  • ??
  • ---------------------------字段操作--------------------------- ??
  • --添加字段 ??
  • alter?table?[表名]?add?[字段名]?[varchar]?(50)?not?null?default('默認') ??
  • ??
  • --刪除字段 ??
  • alter?table?[表名]?drop?column?[字段名] ??
  • ??
  • --修改字段 ??
  • alter?table?[表名]?alter?column?[字段名]?varchar(50) ??
  • ??
  • --添加約束 ??
  • alter?table?[表名]?add?constraint?[約束名]?check?([約束字段]?<=?'2009-1-1') ??
  • ??
  • --刪除約束 ??
  • alter?table?[表名]?drop?constraint?[約束名] ??
  • ??
  • --添加默認值 ??
  • alter?table?[表名]?add?constraint?[默認值名]?default?'http://www.yongfa365.com/'?for?[字段名] ??
  • ??
  • --刪除默認值 ??
  • alter?table?[表名]?drop?constraint?[默認值名] ??
  • ??
  • --讓SQL?Server?自動編號ID從1開始 ??
  • dbcc?checkident('表名',reseed,0) ??
  • ??
  • ---------------------------字段操作--------------------------- ??
  • ??
  • ----------------------表及字段描述信息------------------------ ??
  • ??
  • --為表添加描述信息 ??
  • EXEC?sp_addextendedproperty?N'MS_Description'?,?N'人員信息表'?,?N'SCHEMA'?,?N'dbo'?,?N'TABLE'?,?N'表名'?,?NULL?,?NULL??
  • ??
  • --為字段XingMing添加描述信息 ??
  • EXEC?sp_addextendedproperty?N'MS_Description'?,?N'姓名'?,?N'SCHEMA'?,?N'dbo'?,?N'TABLE'?,?N'表名'?,?N'COLUMN'?,?N'XingMing'??
  • ??
  • --更新表中列XingMing的描述屬性: ??
  • EXEC?sp_updateextendedproperty?N'MS_Description'?,?N'真實姓名'?,?N'SCHEMA'?,?N'dbo'?,?'TABLE'?,?'表名'?,?'COLUMN'?,?N'XingMing'??
  • ??
  • --刪除表中列XingMing的描述屬性: ??
  • EXEC?sp_dropextendedproperty?N'MS_Description'?,?N'SCHEMA'?,?N'dbo'?,?'TABLE'?,?'表名'?,?'COLUMN'?,?N'XingMing'??
  • ??
  • ----------------------表及字段描述信息------------------------ ??
  • ??
  • ??
  • ---------------------------數據操作--------------------------- ??
  • --插入數據 ??
  • insert?into?[表名]?(字段1,字段2)?values?(100,'http://www.yongfa365.com/') ??
  • ??
  • --刪除數據 ??
  • delete?from?[表名]?where?[字段名]>100 ??
  • ??
  • --刪除重復記錄(效率低,適合少量數據操作,極不適合ACCESS使用) ??
  • delete?from?[表名]?where?id?not?in?(select?max(id)?from?[表名]?group?by?txtTitle,txtContent) ??
  • ??
  • --NOT?IN?效率太低,20000條數據都讓access死掉了。可行的方法:建個臨時表,在需要判斷是否重復的字段上加主鍵,用insert?into?InfoTemp?select?*?from?Info將原表的數據導入臨時表,?數據庫可以自動篩去重復數據,delete?*?from?Info?清空原表,再用insert?into?Info?select?*?from?InfoTemp?將臨時表中數據導回原表 ??
  • ??
  • --更新數據 ??
  • update?[表名]?set?[字段1]?=?200,[字段2]?=?'http://www.yongfa365.com/'?where?[字段三]?=?'haiwa'??
  • ??
  • --多表,用一個表更新另一個表(SQL?Server版) ??
  • update?表一 ??
  • set?表一.a?=?表二.b ??
  • from?表一,表二 ??
  • where?表一.id?=?表二.id ??
  • ??
  • update?表一 ??
  • set?a?=?表二.b ??
  • from?表二 ??
  • where?id?=?表二.id ??
  • ??
  • --多表,用一個表更新另一個表(ACCESS版) ??
  • update?表一? ??
  • inner?join?表二 ??
  • on?表一.id?=?表二.id ??
  • set?表一.a?=?表二.b? ??
  • ??
  • --查詢結果存儲到新表 ??
  • select?*?into?[新表表名]?from?[表名] ??
  • ??
  • --從table?表中取出從第?m?條到第?n?條的記錄:(not?in?版本) ??
  • select?top?n-m+1?*?from?[表名]?where?id?not?in?(select?top?m-1?id?from?[表名]) ??
  • ??
  • --例:取出第31到第40條記錄 ??
  • select?top?10?*?from?[表名]?where?id?not?in?(select?top?30?id?from?[表名]) ??
  • ??
  • --從table?表中取出從第?m?條到第?n?條的記錄:(ROW_NUMBER?版本) ??
  • SELECT??* ??
  • FROM????(?SELECT????ROW_NUMBER()?OVER?(?ORDER?BY?id?DESC?)?AS?idx?, ??
  • ????????????????????* ??
  • ??????????FROM??????dbo.Articles ??
  • ????????)?a ??
  • WHERE???a.idx?BETWEEN?m?AND?n ??
  • ??
  • --隨機取10條數據,newid()是SQL數據庫里的一個函數,跟數據庫里的ID沒關 ??
  • select?top?10?*?from?[表名]?order?by?newid()? ??
  • ??
  • --隨機取10條數據,如果是ACCESS數據庫用order?by?rnd(數字字段) ??
  • select?top?10?*?from?[表名]?order?by?rnd(id) ??
  • ??
  • --連接查詢left?join ??
  • select?*?from?Article?left?join?Category?on?Article.CategoryID=Category.ID ??
  • ??
  • ??
  • ??
  • --查詢結果插入到另一個表的相關字段里(可以插入一個表的字段,也可以是一個數字常量) ??
  • insert?into?desttbl(fld1,?fld2)?select?fld1,?5?from?srctbl ??
  • ??
  • --把當前表里的數據再復制一份到這個表里 ??
  • insert?into?[表名]?select?*?from?[表名] ??
  • ??
  • --SQL?2008支持這種插入方法,使用,隔開各行 ??
  • DECLARE?@Student?TABLE?(NO?INT,Name?NVARCHAR(4),Sex?NVARCHAR(2),Age?INT,Dept?VARCHAR(2)) ??
  • INSERT?INTO?@Student?VALUES??
  • (?95001,N'李勇',N'男',20,'CS'), ??
  • (?95002,N'劉晨',N'女',19,'IS'), ??
  • (?95003,N'王敏',N'女',18,'IS'), ??
  • (?95004,N'張立',N'男',19,'MA'), ??
  • (?96001,N'徐一',N'男',20,'IS'), ??
  • (?96002,N'張三',N'女',21,'CS'), ??
  • (?96003,N'李四',N'男',18,'IS') ??
  • ??
  • SELECT?*?FROM?@Student ??
  • ??
  • --以逗號連接結果集所有行,使之變為一行 ??
  • DECLARE?@result?NVARCHAR(MAX) ??
  • SET?@result?=?N''??
  • SELECT?@result?=?@result?+?N','?+?Name?FROM?@Student ??
  • ??
  • SELECT?RIGHT(@result,LEN(@result)?-?1) ??
  • ??
  • ??
  • --向數據庫中添加5000條數據 ??
  • declare?@i?int??
  • set?@i=1 ??
  • while?@i<=5000 ??
  • begin??
  • ??insert?into?users(userid,username)?values(@i,'username'?convert(varchar(255),@i)) ??
  • ??set?@i=@i+1 ??
  • end??
  • go ??
  • ??
  • --統計SQL語句執行時間 ??
  • declare?@dt?datetime ??
  • set?@dt=getdate() ??
  • --要執行的SQL語句 ??
  • select?[語句執行花費時間(毫秒)]=datediff(ms,@dt,getdate()) ??
  • ??
  • --Case?When語句 ??
  • SELECT?UserName,sex= ??
  • CASE??
  • ??WHEN?sex='男'?THEN?'男人'??
  • ??WHEN?sex='女'?THEN?'女人'??
  • ??ELSE?'哈哈'??
  • END??
  • ,Age ??
  • FROM?Users ??
  • ??
  • --having使用方法 ??
  • --一個表中的UserName有很多重復, ??
  • --只顯示重復項:? ??
  • select?UserName,COUNT(*)?from?Users?group?by?UserName?having?count(*)>1? ??
  • --不顯示重復項:? ??
  • select?UserName,COUNT(*)?from?Users?group?by?UserName?having?count(*)=1? ??
  • ??
  • ---------------------------數據操作---------------------------??
  • 總結

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

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