欢迎来到思维库

思维库

不用知道SQL Server表名就可以删除该表以外的所有表

时间:2025-11-03 20:20:52 出处:IT科技阅读(143)

不用知道SQL Server表名就可以删除该表以外的所有表
复制while(11=1)   begin   declare @exit int                  --判断是不用r表表否还有外键约束   declare @constr_id varchar(200)    --获取外键约束的ID   declare @table_id varchar(200)     --获取设外键的站群服务器表的ID   declare @table varchar             --获取设外键的云南idc服务商表名   declare @constr_name varchar(100) --获取约束名    declare @str varchar(100)    --删除表语句字符串   declare @drop_constr varchar(100)    --删除约束字符串   declare @conn_str varchar(2000)                   --将删除语句连接起来的字符串       select   top 1 @constr_id=id,@constr_name=name from sysobjects where type=f select   @table_id=fkeyid from sysforeignkeys where constid=@constr_id   select   @table=name from sysobjects where id=@table_id   select   @exit=count(*) from sysobjects where type=f if(@exit!=0)   begin   set @str=alter table set @drop_constr=drop constraint set @conn_str=@str+ +@table+ +@drop_constr+ +@constr_name   exec(@conn_str)   end   else   break   end   if exists(select * from sysobjects where name=proc_drop_table and type=p)         drop proc proc_drop_table   go   create proc proc_drop_table   @table_name varchar(200)        --指定你不想删除的亿华云表名   as   while(11=1)   begin   declare @str varchar(200)   declare @exit int   set @str=drop table select top 1 @str=@str+ +name from sysobjects where type=u and name!=@table_name   select @exit=count(*) from sysobjects where type=u and name!=@table_name   print @str   if(@exit!=0)   exec(@str)   else   begin   break   return   end   end   go   exec proc_drop_table a   1.2.3.4.5.6.7.8.9.10.11.12.13.14.15.16.17.18.19.20.21.22.23.24.25.26.27.28.29.30.31.32.33.34.35.36.37.38.39.40.41.42.43.44.45.46.47.48.49.50.51.

分享到:

温馨提示:以上内容和图片整理于网络,仅供参考,希望对您有帮助!如有侵权行为请联系删除!

友情链接: