SQLserver刪除某數(shù)據(jù)庫中所有表實現(xiàn)思路
更新時間:2013年02月17日 17:05:41 作者:
方便刪除數(shù)據(jù)庫中所有的數(shù)據(jù)表,清空數(shù)據(jù)庫,有些有約束,不能直接delete,因為那樣太危險了所以需要先刪除庫中的約束,接下來提供詳細(xì)實現(xiàn)代碼,感興趣的你可以參考下哦,或許對你學(xué)習(xí)有所幫助
方便刪除數(shù)據(jù)庫中所有的數(shù)據(jù)表,清空數(shù)據(jù)庫,有些有約束,不能直接delete,需要先刪除庫中的約束,代碼如下
復(fù)制代碼 代碼如下:
--刪除所有約束
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
--刪除數(shù)據(jù)庫所有表
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)
然后清空數(shù)據(jù)庫中的所有表:
如果需要刪除存儲過程等只需要將上面的做如下修改就行了的where xtype='U' 改成 where xtype='P',drop table 改成 drop Procedure
sysobjects的xtype代表含義:
在數(shù)據(jù)庫內(nèi)創(chuàng)建的每個對象(約束、默認(rèn)值、日志、規(guī)則、存儲過程等)在表中占一行。只有在 tempdb 內(nèi),每個臨時對象才在該表中占一行。
列名 數(shù)據(jù)類型 描述
name sysname 對象名。
Id int 對象標(biāo)識號。
xtype char(2) 對象類型。可以是下列對象類型中的一種:
C = CHECK 約束
D = 默認(rèn)值或 DEFAULT 約束
F = FOREIGN KEY 約束
L = 日志
FN = 標(biāo)量函數(shù)
IF = 內(nèi)嵌表函數(shù)
P = 存儲過程
PK = PRIMARY KEY 約束(類型是 K)
RF = 復(fù)制篩選存儲過程
S = 系統(tǒng)表
TF = 表函數(shù)
TR = 觸發(fā)器
U = 用戶表
UQ = UNIQUE 約束(類型是 K)
V = 視圖
X = 擴展存儲過程
uid smallint 所有者對象的用戶 ID。
info smallint 保留。僅限內(nèi)部使用。
status int 保留。僅限內(nèi)部使用。
base_schema_
ver int 保留。僅限內(nèi)部使用。
replinfo int 保留。供復(fù)制使用。
parent_obj int 父對象的對象標(biāo)識號(例如,對于觸發(fā)器或約束,該標(biāo)識號為表 ID)。
crdate datetime 對象的創(chuàng)建日期。
ftcatid smallint 為全文索引注冊的所有用戶表的全文目錄標(biāo)識符,對于沒有注冊的所有用戶表則為 0。
schema_ver int 版本號,該版本號在每次表的架構(gòu)更改時都增加。
stats_schema_
ver int 保留。僅限內(nèi)部使用。
type char(2) 對象類型。可以是下列值之一:
C = CHECK 約束
D = 默認(rèn)值或 DEFAULT 約束
F = FOREIGN KEY 約束
FN = 標(biāo)量函數(shù)
IF = 內(nèi)嵌表函數(shù)
K = PRIMARY KEY 或 UNIQUE 約束
L = 日志
P = 存儲過程
R = 規(guī)則
RF = 復(fù)制篩選存儲過程
S = 系統(tǒng)表
TF = 表函數(shù)
TR = 觸發(fā)器
U = 用戶表
V = 視圖
X = 擴展存儲過程
userstat smallint 保留。
sysstat smallint 內(nèi)部狀態(tài)信息。
indexdel smallint 保留。
refdate datetime 留作以后使用。
version int 留作以后使用。
deltrig int 保留。
instrig int 保留。
updtrig int 保留。
seltrig int 保留。
category int 用于發(fā)布、約束和標(biāo)識。
cache smallint 保留。
相關(guān)文章
SQL Server數(shù)據(jù)庫備份加密的方法詳解
在數(shù)據(jù)即資產(chǎn)的今天,保護數(shù)據(jù)庫備份免受未授權(quán)訪問是至關(guān)重要的,SQL Server提供了強大的安全特性,包括對數(shù)據(jù)庫備份進行加密的能力,本文將深入探討如何在SQL Server中實現(xiàn)數(shù)據(jù)庫的自定義數(shù)據(jù)備份加密,需要的朋友可以參考下2024-08-08
case?when?then?else?end語句的用法(附demo)
本文主要介紹了case?when?then?else?end語句的用法,主要介紹了兩種格式,簡單case函數(shù)和case搜索函數(shù),具有一定的參考價值,感興趣的可以了解一下2023-10-10
SQL Server使用PIVOT與unPIVOT實現(xiàn)行列轉(zhuǎn)換
這篇文章介紹了SQL Server使用PIVOT與unPIVOT實現(xiàn)行列轉(zhuǎn)換的方法,文中通過示例代碼介紹的非常詳細(xì)。對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下2022-05-05
sql 自定義百分比轉(zhuǎn)換小數(shù)函數(shù)代碼
sqlserver中自定義百分比轉(zhuǎn)換小數(shù)函數(shù),需要的朋友可以參考下。2011-09-09
Sql Server 2000刪除數(shù)據(jù)庫備份文件
Sql Server 2000刪除數(shù)據(jù)庫備份文件的語句。2009-09-09
SQL 復(fù)合查詢條件(AND,OR,NOT)對NULL值的處理方法
在SQL的3值邏輯下,一個查詢條件可以產(chǎn)生以下三種情況:TRUE,FALSE,NULL。只有那些滿足WHERE子句的值是TRUE的記錄才出現(xiàn)在結(jié)果表中。2011-04-04

