1. ホーム
  2. sql

SQL Serverデータベースですべてのストアドプロシージャを一度に削除する方法は?

2023-09-19 09:55:39

質問

現在、スクリプトファイル内の各ストアドプロシージャに対して別々のドロップステートメントを使用しています。

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] 

一度に、あるいはループで落とす方法はないでしょうか?

どのように解決するのですか?

のようなものです。 SQL Serverでストアドプロシージャを使用してデータベースからすべてのプロシージャを削除する ).

ただ、ところで、これはどうやら VERY 危険なことのように思えますが、ちょっと考えてみました。

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