要删除某个数据库,或者删除数据库中的所有表(删除表结构和数据),需要先删除表间的外键约束,才能删除表。如删除数据库db_wy中的所有表:
--/第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
原文地址:https://www.cnblogs.com/yige/p/5193253.html#commentform