sql快速删除所用表,视图,存储过程

本文介绍了一种使用T-SQL脚本批量删除SQL Server中的表和存储过程的方法。通过定义游标并遍历系统表来实现自动化删除,适用于需要清理大量数据库对象的场景。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

删除用户表
1、
select 'DROP TABLE '+name from sysobjects where type = 'U'


删除视图
2、
select 'DROP VIEW '+name from sysobjects where type = 'V'


删除存储过程
3、
select 'DROP PROC '+name from sysobjects where type = 'P'



上面的方法是复制出来,然后执行,下面的方法直接用游标执行(转)

删除表:


DECLARE @Tb_Name varchar(30)    --定义游标操作 
DECLARE staff_cursor CURSOR FOR
SELECT [name] FROM sys.sysobjects
WHERE type='U'
-- 打开游标
OPEN staff_cursor
-- 提取记录数据
FETCH Next FROM staff_cursor Into @Tb_Name
WHILE @@fetch_status = 0
BEGIN
EXEC('DROP TABLE ' + @Tb_Name )
PRINT @Tb_Name
FETCH Next FROM staff_cursor Into @Tb_Name
END
CLOSE staff_cursor -- 关闭游标
DEALLOCATE staff_cursor -- 释放游标资源
[/code

删除存储过程:


[code="sql"]DECLARE @Sp_Name varchar(30) --定义游标操作
DECLARE @Tb_Count int
SET @Tb_Count = 0
DECLARE staff_cursor CURSOR FOR
SELECT [name] FROM sys.sysobjects
WHERE type='p' AND Category =0 --Category =0 表示
-- 打开游标
OPEN staff_cursor
-- 提取记录数据
FETCH Next FROM staff_cursor Into @Sp_Name
PRINT '开始删除存储过程'
WHILE @@fetch_status = 0
BEGIN
SET @Tb_Count = @Tb_Count + 1
EXEC('DROP PROCEDURE ' + @Sp_Name )
PRINT CONVERT(varchar(20),@Tb_Count) + ': ' + @Sp_Name
FETCH Next FROM staff_cursor Into @Sp_Name
END
print '总共删除' + CONVERT(varchar(20),@Tb_Count) + '个存储过程'
CLOSE staff_cursor -- 关闭游标
DEALLOCATE staff_cursor -- 释放游标资源

以此类推吧。也可删除函数什么的
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值