SQL Server 刪除資料庫所有表和所有預存程序

來源:互聯網
上載者:User

標籤:

情境:SQL Server中,需要刪除所有表或所有預存程序時,手動的方式只能逐個進行刪除,耗個人時間,所以想弄個語句來實現這樣的需求。 

如果由於外鍵約束刪除table失敗,則先刪除所有約束:

--/第1步**********刪除所有表的外鍵約束*************************/

 1 DECLARE c1 cursor for  2     select ‘alter table [‘+ object_name(parent_obj) + ‘] drop constraint [‘+name+‘]; ‘ 3     from sysobjects  4     where xtype = ‘F‘ 5 open c1 6 declare @c1 varchar(8000) 7 fetch next from c1 into @c1 8 while(@@fetch_status=0) 9     begin 10         exec(@c1)11         fetch next from c1 into @c112     end13 close c114 deallocate c115 go

 

--/第2步**********刪除所有表*************************/

1 use 資料庫2 declare @tname varchar(8000)3 set @tname=‘‘4 select @tname=@tname + Name + ‘,‘ from sysobjects where xtype=‘U‘5 select @tname=‘drop table ‘ + left(@tname,len(@tname)-1)6 exec(@tname)7 go

刪除所有的預存程序同理可得,但不需要走第一步,只需將第2步的代碼的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 所有者對象的使用者識別碼。 
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 保留。

 

SQL Server 刪除資料庫所有表和所有預存程序

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.