删除指定SQL数据库所有表和存储过程

原理就是根据 sysobjects 系统表里面查到每张表名,然后drop掉,同理可以一次性drop所有存储过程

--删所有数据表
USE [数据库名]
DECLARE @tableName VARCHAR(Max)
SET @tableName = ''
SELECT @tableName = @tableName + NAME + ','
FROM   sysobjects
WHERE  xtype = 'U'; 
SELECT @tableName = 'drop table ' + LEFT(@tableName, (LEN(@tableName) -1))
EXEC (@tableName)
 
--删所有存储过程
USE [数据库名]
DECLARE @procedureName VARCHAR(Max)
SET @procedureName = ''
SELECT @procedureName = @procedureName + NAME + ','
FROM   sysobjects
WHERE  xtype = 'P';   
SELECT @procedureName = 'DROP PROCEDURE ' + LEFT(@procedureName, (LEN(@procedureName) -1))
EXEC (@procedureName)

补充:sysobjects表里type字段含义:
AF = Aggregate function (CLR)
C = CHECK constraint
D = DEFAULT (constraint or stand-alone)
F = FOREIGN KEY constraint
FN = SQL scalar function
FS = Assembly (CLR) scalar function
FT = Assembly (CLR) table-valued function
IF = SQL inline table-valued function
IT = Internal table
P = SQL stored procedure
PC = Assembly (CLR) stored procedure
PK = PRIMARY KEY constraint
R = Rule (old-style, stand-alone)
RF = Replication-filter-procedure
S = System base table
SN = Synonym
SQ = Service queue
TA = Assembly (CLR) DML trigger
TF = SQL table-valued-function
TR = SQL DML trigger
U = Table (user-defined)
UQ = UNIQUE constraint
V = View
X = Extended stored procedure

 

转载于:https://www.cnblogs.com/zhangqs008/archive/2013/04/23/3059782.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值