次の方法で共有


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 の現在のデータベースから削除します。

Transact-SQL 構文表記規則

構文

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