首页 新闻 会员 周边

关于批量删除 SQL 数据库中的存储过程

0
[已解决问题] 解决于 2016-12-09 18:04

今天,在执行一段T-SQL 语句时。因为开始没注意看,没有选择数据库,点击执行后,把一堆的存储过程 存到了 系统数据库--> master--> 中的存储过程中。有挺多的,一个一个删好麻烦,是否可以批量删除系统数据库 master 中的存储过程?

BUTTERAPPLE的主页 BUTTERAPPLE | 老鸟四级 | 园豆:3190
提问于:2016-12-09 17:56
< >
分享
最佳答案
1

把存储过程名称一个个拼成drop proc {procdureName};的字符串

然后在master库中执行下。

 

奖励园豆:5
Daniel Cai | 专家六级 |园豆:10424 | 2016-12-09 18:02

就是每个存储过程写成那样的格式对吗?好的,我知道了,谢谢啦

BUTTERAPPLE | 园豆:3190 (老鸟四级) | 2016-12-09 18:04
其他回答(1)
1

下面这个可以删除,不过谨慎使用哦

declare proccur cursor
    for
        select [name] from sysobjects where type='P'
declare @procname varchar(100)
open proccur
fetch next from proccur into @procname
while(@@FETCH_STATUS = 0)
begin   
    --exec('drop proc ' + @procname)  --本句被注释,使用时请取消

    print(@procname + '已被删除')
    fetch next from proccur into @procname
end
close proccur
deallocate proccur

Robin.JiangDH | 园豆:223 (菜鸟二级) | 2016-12-16 16:31

好的,谢谢啦!


支持(0) 反对(0) BUTTERAPPLE | 园豆:3190 (老鸟四级) | 2016-12-16 16:32
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册