DROP PROCEDURE (Transact-SQL)
Applies to: SQL Server Azure SQL Database Azure SQL Managed Instance Azure Synapse Analytics Analytics Platform System (PDW) Microsoft Fabric の SQL 分析エンドポイント Microsoft Fabric のウェアハウス
1 つ以上のストアド プロシージャまたはプロシージャ グループを SQL Server の現在のデータベースから削除します。
構文
SQL Server、Azure SQL Managed Instance、および Azure SQL Database の構文:
DROP { PROC | PROCEDURE } [ IF EXISTS ] { [ schema_name. ] procedure } [ , ...n ]
Azure Synapse Analytics、Analytics Platform System (PDW)、Microsoft Fabric の場合の構文:
DROP { PROC | PROCEDURE } { [ schema_name. ] procedure_name }
引数
IF EXISTS
適用対象: SQL Server 2016 (13.x) 以降のバージョン、Azure SQL Managed Instance、および Azure SQL Database
条件付きでは既に存在する場合にのみ、プロシージャを削除します。
schema_name
プロシージャが属するスキーマの名前を指定します。 サーバー名またはデータベース名を指定できません。
procedure
削除するストアド プロシージャまたはストアド プロシージャ グループの名前です。 番号付きプロシージャ グループ内の個々のプロシージャを削除することはできません。プロシージャ グループ全体が削除されます。
ベスト プラクティス
ストアド プロシージャを削除する前に、依存オブジェクトを確認し、それらのオブジェクトを適切に修正します。 ストアド プロシージャを削除すると、依存オブジェクトとスクリプトが更新されない場合に失敗する可能性があります。 詳細については、「ストアド プロシージャの依存関係の表示」を参照してください
Metadata
既存のプロシージャの一覧を表示するには、 sys.objects
カタログ ビューに対してクエリを実行します。 プロシージャ定義を表示するには、 sys.sql_modules
カタログ ビューに対してクエリを実行します。
アクセス許可
プロシージャ CONTROL
アクセス許可、またはプロシージャが属するスキーマに対する ALTER
権限、または固定サーバー ロール db_ddladmin メンバーシップが必要です。
例
次の例では、現在のデータベースから dbo.uspMyProc
ストアド プロシージャを削除します。
DROP PROCEDURE dbo.uspMyProc;
GO
次の例では、現在のデータベースからいくつかのストアド プロシージャを削除します。
DROP PROCEDURE
dbo.uspGetSalesbyMonth,
dbo.uspUpdateSalesQuotes,
dbo.uspGetSalesByYear;
次の例では、 dbo.uspMyProc
ストアド プロシージャが存在する場合は削除されますが、プロシージャが存在しない場合はエラーは発生しません。 この構文は、SQL Server 2016 (13.x) で導入されました。
DROP PROCEDURE IF EXISTS dbo.uspMyProc;
GO