DROP PROCEDURE (Transact-SQL)

適用対象:SQL ServerAzure SQL DatabaseAzure SQL Managed InstanceAzure Synapse AnalyticsAnalytics Platform System (PDW)Microsoft Fabric の SQL 分析エンドポイントMicrosoft Fabric のウェアハウス

1 つ以上のストアド プロシージャまたはプロシージャ グループを SQL Server の現在のデータベースから削除します。

Transact-SQL 構文表記規則

構文

-- Syntax for SQL Server and Azure SQL Database  
  
DROP { PROC | PROCEDURE } [ IF EXISTS ] { [ schema_name. ] procedure } [ ,...n ]  
-- Syntax for Azure Synapse Analytics and Parallel Data Warehouse and Microsoft Fabric
  
DROP { PROC | PROCEDURE } { [ schema_name. ] procedure_name }  

Note

SQL Server 2014 (12.x) 以前のバージョンの Transact-SQL 構文を確認するには、以前のバージョンのドキュメントを参照してください。

引数

IF EXISTS
適用対象: SQL Server (SQL Server 2016 (13.x) から現在のバージョンまで)。

条件付きでは既に存在する場合にのみ、プロシージャを削除します。

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  

参照

ALTER PROCEDURE (Transact-SQL)
CREATE PROCEDURE (Transact-SQL)
sys.objects (Transact-SQL)
sys.sql_modules (Transact-SQL)
ストアド プロシージャの削除