SQL Server存储过程删除表
我想删除一些废表,他们有命名规律:
他们均是以用户名开头,比如shanying1945,以某几个字符结尾,比如temp
用户名一定在用户名student表中,且不在A表中
多谢。
[解决办法]
- SQL code
--删除所有用户表:--select * from sysobjects where xtype='U' and category=0use masterdeclare @str varchar(max)set @str=''select @str=@str+' drop table '+quotename(name,'')+';'from sysobjects where xtype='U' and category=0 --and name not in('table','user','return','order','客户信息')print @strexec(@str)--可以在这个基础上修改
[解决办法]
你的表名和结尾的字符间,有没有规律?
比如你有一个用户名shanying1945
然后有一个表shanying1945temp
然后你再有一个用户名shanying1945t
然后shanying1945t用户名在A表中,
那么shanying1945temp表删不删?
[解决办法]
楼主的表数量很多吗,上万个不?
如果没有,保险的话还是人工排查好了.
[解决办法]
支持楼上,大批量删除表一旦语句有点错后面的事就可能会很麻烦