SQLserver刪除某數據庫中一切表完成思緒。本站提示廣大學習愛好者:(SQLserver刪除某數據庫中一切表完成思緒)文章只能為提供參考,不一定能成為您想要的結果。以下是SQLserver刪除某數據庫中一切表完成思緒正文
便利刪除數據庫中一切的數據表,清空數據庫,有些有束縛,不克不及直接delete,須要先刪除庫中的束縛,代碼以下
--刪除一切束縛
DECLARE c1 cursor for
select'alter table ['+ object_name(parent_obj)+'] drop constraint ['+name+']; '
from sysobjects
where xtype ='F'
open c1
declare @c1 varchar(8000)
fetch nextfrom c1 into@c1
while(@@fetch_status=0)
begin
exec(@c1)
fetch nextfrom c1 into@c1
end
close c1
deallocate c1
--刪除數據庫一切表
declare @tname varchar(8000)
set@tname=''
select@tname=@tname+Name+','from sysobjects where xtype='U'
select@tname='drop table '+ left(@tname,len(@tname)-1)
exec(@tname)
然後清空數據庫中的一切表:
假如須要刪除存儲進程等只須要將下面的做以下修正就好了的where xtype='U' 改成 where xtype='P',drop table 改成 drop Procedure
sysobjects的xtype代表寄義:
在數據庫內創立的每一個對象(束縛、默許值、日記、規矩、存儲進程等)在表中占一行。只要在 tempdb 內,每一個暫時對象才在該表中占一行。
列名 數據類型 描寫
name sysname 對象名。
Id int 對象標識號。
xtype char(2) 對象類型。可所以以下對象類型中的一種:
C = CHECK 束縛
D = 默許值或 DEFAULT 束縛
F = FOREIGN KEY 束縛
L = 日記
FN = 標量函數
IF = 內嵌表函數
P = 存儲進程
PK = PRIMARY KEY 束縛(類型是 K)
RF = 復制挑選存儲進程
S = 體系表
TF = 表函數
TR = 觸發器
U = 用戶表
UQ = UNIQUE 束縛(類型是 K)
V = 視圖
X = 擴大存儲進程
uid smallint 一切者對象的用戶 ID。
info smallint 保存。僅限外部應用。
status int 保存。僅限外部應用。
base_schema_
ver int 保存。僅限外部應用。
replinfo int 保存。供復制應用。
parent_obj int 父對象的對象標識號(例如,關於觸發器或束縛,該標識號為表 ID)。
crdate datetime 對象的創立日期。
ftcatid smallint 為全文索引注冊的一切用戶表的全文目次標識符,關於沒有注冊的一切用戶表則為 0。
schema_ver int 版本號,該版本號在每次表的架構更改時都增長。
stats_schema_
ver int 保存。僅限外部應用。
type char(2) 對象類型。可所以以下值之一:
C = CHECK 束縛
D = 默許值或 DEFAULT 束縛
F = FOREIGN KEY 束縛
FN = 標量函數
IF = 內嵌表函數
K = PRIMARY KEY 或 UNIQUE 束縛
L = 日記
P = 存儲進程
R = 規矩
RF = 復制挑選存儲進程
S = 體系表
TF = 表函數
TR = 觸發器
U = 用戶表
V = 視圖
X = 擴大存儲進程
userstat smallint 保存。
sysstat smallint 外部狀況信息。
indexdel smallint 保存。
refdate datetime 留作今後應用。
version int 留作今後應用。
deltrig int 保存。
instrig int 保存。
updtrig int 保存。
seltrig int 保存。
category int 用於宣布、束縛和標識。
cache smallint 保存。