一次性删除数据库所有表和所有存储过程 SQL语句
今天转移数据库数据,需要把数据库原来的表和存储过程清空。
删除所有的表:
如果由于外键约束删除table失败,则先删除所有约束:
--/第1步**********删除所有表的外键约束*************************/ 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 --/第2步**********删除所有表*************************/ use 数据库 declare @tname varchar(8000) set @tname='' select @tname=@tname + Name + ',' from sysobjects where xtype='U' select @tname='drop table ' + left(@tname,len(@tname)-1) exec(@tname) ----清空存储过程 use [数据库名称] declare @tname varchar(8000) set @tname='' select @tname=@tname + Name + ',' from sysobjects where xtype='P' select @tname='drop PROCEDURE ' + left(@tname,len(@tname)-1) exec(@tname)
转自:http://www.cnblogs.com/a-zx/articles/2405121.html