ストアド プロシージャの削除

適用対象:SQL ServerAzure SQL DatabaseAzure SQL Managed InstanceAzure Synapse AnalyticsAnalytics Platform System (PDW)

この記事では、SQL Server のストアド プロシージャを、SQL Server Management Studio または Transact-SQL を使用して削除する方法について説明します。

制限事項と制約事項

プロシージャを削除すると、依存オブジェクトとスクリプトを更新してプロシージャの削除を反映しない限り、そのオブジェクトとスクリプトが失敗する可能性があります。 ただし、名前とパラメーターが同じである新しいプロシージャを作成し、削除したプロシージャと置き換えた場合、そのプロシージャを参照する他のオブジェクトは正常に処理されます。 詳細については、「 ストアド プロシージャの依存関係の表示」を参照してください。

アクセス許可

プロシージャが属しているスキーマに対する ALTER 権限、またはプロシージャに対する CONTROL 権限が必要です。

SQL Server Management Studio の使用 [SQL Server]

  1. オブジェクト エクスプローラーで、 データベース エンジン のインスタンスに接続し、そのインスタンスを展開します。

  2. [データベース] を展開し、プロシージャが属するデータベースを展開し、 [プログラミング] を展開します。

  3. [ストアド プロシージャ] を展開し、削除するプロシージャを右クリックして、[削除] を選択します。

  4. プロシージャに依存するオブジェクトを表示するには、[依存関係の表示] を選択します。

  5. 適切なプロシージャが選択されていることを確認して、[OK] を選択します。

  6. 任意の依存オブジェクトおよびスクリプトからプロシージャへの参照を削除します。

Transact-SQL の使用

  1. オブジェクト エクスプローラーで、 データベース エンジン のインスタンスに接続し、そのインスタンスを展開します。

  2. [データベース] を展開し、プロシージャが属するデータベースを展開するか、ツール バーの利用可能なデータベースの一覧からデータベースを選択します。

  3. [ファイル] メニューで [新しいクエリ] を選択します。

  4. 現在のデータベースから削除するストアド プロシージャの名前を取得します。 オブジェクト エクスプローラーから、 [プログラミング] を展開し、 [ストアド プロシージャ] を展開します。 または、クエリ エディターで次のステートメントを実行します。

    SELECT name AS procedure_name
        , SCHEMA_NAME(schema_id) AS schema_name
        , type_desc
        , create_date
        , modify_date
    FROM sys.procedures;
    
  5. 次の例をコピーしてクエリ エディターに貼り付け、現在のデータベースから削除するストアド プロシージャの名前を挿入します。

    DROP PROCEDURE [<stored procedure name>];
    GO
    
  6. 任意の依存オブジェクトおよびスクリプトからプロシージャへの参照を削除します。

関連項目