小编典典

如何一次删除所有存储过程在SQL Server数据库中?

sql

当前,我们为脚本文件中的每个存储过程使用单独的drop语句:

IF EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[MySP]')   
  AND type in (N'P', N'PC'))  
DROP PROCEDURE [dbo].[MySP]

有没有一种方法可以一次全部删除,也可以循环删除?


阅读 150

收藏
2021-04-15

共1个答案

小编典典

类似于(在使用SQL
Server中的存储过程从数据库
删除所有过程中找到)。

顺便说一句,这似乎是一件 非常 危险的事情,只是一个想法…

declare @procName varchar(500)
declare cur cursor

for select [name] from sys.objects where type = 'p'
open cur
fetch next from cur into @procName
while @@fetch_status = 0
begin
    exec('drop procedure [' + @procName + ']')
    fetch next from cur into @procName
end
close cur
deallocate cur
2021-04-15