不用知道SQL Server表名就可以删除该表以外的所有表
时间:2025-11-03 20:20:52 出处:IT科技阅读(143)

复制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.
分享到:
温馨提示:以上内容和图片整理于网络,仅供参考,希望对您有帮助!如有侵权行为请联系删除!