一次性删除数据库所有表和所有存储过程 SQL语句

Posted 金琥

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了一次性删除数据库所有表和所有存储过程 SQL语句相关的知识,希望对你有一定的参考价值。

一次性删除数据库所有表和所有存储过程 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

以上是关于一次性删除数据库所有表和所有存储过程 SQL语句的主要内容,如果未能解决你的问题,请参考以下文章

在一条 sql 语句中删除所有表、存储过程、触发器、约束和所有依赖项

数据库入门(SQL SEVER)之SQL语句删除单行数据,所有行数据,表和数据库

删除数据所有的表和存储过程

sql 在一个sql语句中删除所有表,存储过程,触发器,约束和所有依赖项

sql 删除表格delete drop truncate 区别(转)

MySQL-存储过程