日期:2014-05-18  浏览次数:20419 次

SQL Server存储过程删除表
我想删除一些废表,他们有命名规律:
他们均是以用户名开头,比如shanying1945,以某几个字符结尾,比如temp
用户名一定在用户名student表中,且不在A表中

多谢。

------解决方案--------------------
SQL code

--删除所有用户表:
--select * from sysobjects where xtype='U' and category=0
use master
declare @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 @str
exec(@str)


--可以在这个基础上修改

------解决方案--------------------
你的表名和结尾的字符间,有没有规律?

比如你有一个用户名shanying1945
然后有一个表shanying1945temp

然后你再有一个用户名shanying1945t

然后shanying1945t用户名在A表中,

那么shanying1945temp表删不删?
------解决方案--------------------
楼主的表数量很多吗,上万个不?

如果没有,保险的话还是人工排查好了.
------解决方案--------------------
支持楼上,大批量删除表一旦语句有点错后面的事就可能会很麻烦