Sql Server 删除所有表(转)
http://www.cnblogs.com/jys509/p/3589468.html
首先必须要清空所有表的外键
DECLARE c1 cursor for select 'alter table ['+ object_name(parent_obj) + '] drop constraint ['+name+']; ' from sysobjects where xtype = 'F' open c1 declare @c1 varchar(8000) fetch next from c1 into @c1 while(@@fetch_status=0) begin exec(@c1) fetch next from c1 into @c1 end close c1 deallocate c1
第二部删除所有的表
--清空数据库内所有的表 --注意替换数据库 use aqfk_2016_test GO declare @sql varchar(8000) while (select count(*) from sysobjects where type='U')>0 begin SELECT @sql='drop table ' + name FROM sysobjects WHERE (type = 'U') ORDER BY 'drop table ' + name exec(@sql) end
批量删除所有视图:
select identity(int,1,1) flag,[name] names into #tmp from sysobjects where xtype='v' declare @tb varchar(1000) ,@a int,@b int,@sql varchar(8000) select @a=min(flag),@b=max(flag) from #tmp while @a<=@b begin select @tb=names from #tmp where flag=@a set @sql='drop view "'+@tb+'"' exec(@sql) set @a=@a+1 end DROP TABLE #tmp