sqlserver删除所有表(表结构和数据)

要删除某个数据库,或者删除数据库中的所有表(删除表结构和数据),需要先删除表间的外键约束,才能删除表。如删除数据库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 db_wy
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


转载请注明来源,欢迎对文章中的引用来源进行考证,欢迎指出任何有错误或不够清晰的表达。可以在下面评论区评论,也可以邮件至 591235401@qq.com

文章标题:sqlserver删除所有表(表结构和数据)

本文作者:阿杜同学

发布时间:2019-09-28, 22:20:35

最后更新:2019-09-28, 22:20:35

原始链接:http://yoursite.com/2019/09/28/sqlserver%E5%88%A0%E9%99%A4%E6%89%80%E6%9C%89%E8%A1%A8(%E8%A1%A8%E7%BB%93%E6%9E%84%E5%92%8C%E6%95%B0%E6%8D%AE)/

版权声明: "署名-非商用-相同方式共享 4.0" 转载请保留原文链接及作者。

目录