最近由于做部署实验导致SqlServer实验服务器的数据库经常需要批量删除表,和批量创建表。创建就不用说了直接生成脚本就可以了,删除
点击比较麻烦所以写了如下脚本“删除所有指定架构下的表”.
废话比较多了,懒得说了。。。。
declare @drop_table varchar(8000)
declare @schma varchar(50);
set @table_name = ' '
set @schma='dbo'; --删除dbo架构下的所有表
select name into #temp_1
from sysobjects
where xtype = 'U' and uid =
(
select schema_id
from sys.schemas
where name=@schma
)
select * from #temp_1;
select @table_name=@table_name+',['+@schma+'].['+name+']' from #temp_1;
select * from #temp_1;
select @table_name;
set @table_name = substring(@table_name,3,len(@table_name));
select @table_name;
if(len(LTRIM(@table_name))!=0)
begin
set @drop_table = 'drop table '+@table_name;
exec (@drop_table)
end
else
begin
select '没有可删除的表!';
end
drop table #temp_1;