--/第1步**********刪除所有表的外鍵約束*************************/ 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 next from c1 into @c1 while(@@fetch_status=0) begin exec(@c1) fetch next from c1 into @c1 end close c1 deallocate c1 --/第2步**********刪除所有表*************************/ use 數據庫名(是要刪除表的所在的那個數據庫的名稱) GO declare @sql varchar(8000) while (select count(*) from sysobjects where type='U')>0 begin SELECT @sql='drop table ' + name FROM sysobjects WHERE (type = 'U') ORDER BY 'drop table ' + name exec(@sql) end --刪除所有的存儲過程同理可得,但不需要走第一步,只需將第2步的代碼的where type='U' 改成 where type='P',drop table 改成 drop Procedure。
--刪除所有的視圖同理可得,但不需要走第一步,只需將第2步的代碼的where type='V' 改成 where type='V',drop View 改成 drop View。