ストアド プロシージャの名前の変更

適用対象:SQL ServerAzure SQL DatabaseAzure SQL Managed Instance

このトピックでは、SQL Server Management Studio または Transact-SQL を使用して、SQL Server でストアド プロシージャの名前を変更する方法について説明します。

このトピックの内容

はじめに

制限事項と制約事項

  • プロシージャ名は、 識別子のルールに従っている必要があります。

  • ストアド プロシージャの名前を変更しても、object_id およびそのプロシージャに明示的に割り当てられているすべてのアクセス許可は保持されます。 オブジェクトを削除し再作成すると、新しい object_id を作成し、そのプロシージャに明示的に割り当てられているすべてのアクセス許可を削除します。

  • ストアド プロシージャの名前を変更しても、sys.sql_modules カタログ ビューの定義列にある、対応するオブジェクトの名前は変更されません。 そうするには、ストアド プロシージャを削除して新しい名前で再作成してください。

  • プロシージャの名前または定義を変更すると、依存オブジェクトを更新してプロシージャに加えられた変更を反映しなければ、その依存オブジェクトが失敗する可能性があります。 詳細については、「 ストアド プロシージャの依存関係の表示」を参照してください。

セキュリティ

アクセス許可

CREATE PROCEDURE
データベースの CREATE PROCEDURE 権限およびプロシージャの作成先となるスキーマの ALTER 権限、または、db_ddladmin 固定データベース ロールのメンバーシップが必要です。

ALTER PROCEDURE
プロシージャの ALTER 権限、または db_ddladmin 固定データベース ロールのメンバーシップが必要です。

SQL Server Management Studio を使用する

ストアド プロシージャの名前を変更するには

  1. オブジェクト エクスプローラーで、 データベース エンジン のインスタンスに接続し、そのインスタンスを展開します。
  2. [データベース] を展開し、プロシージャが属するデータベースを展開し、 [プログラミング] を展開します。
  3. ストアド プロシージャの依存関係を確認します
  4. [ストアド プロシージャ] を展開し、名前を変更するプロシージャを右クリックして、 [名前の変更] をクリックします。
  5. プロシージャ名を変更します。
  6. 依存オブジェクトまたはスクリプトで参照しているプロシージャ名を変更します。

Transact-SQL の使用

ストアド プロシージャの名前を変更するには

  1. データベース エンジンに接続します。
  2. [標準] ツール バーの [新しいクエリ] をクリックします。
  3. 次の例をコピーしてクエリ ウィンドウに貼り付け、 [実行] をクリックします。 この例では、プロシージャを削除した後、新しい名前でプロシージャを再作成することによってプロシージャの名前を変更する方法を示します。 最初の例では、 'HumanResources.uspGetAllEmployeesTestという名前のストアド プロシージャを作成します。 2 番目の例では、ストアド プロシージャの名前を HumanResources.uspEveryEmployeeTestに変更します。
--Create the stored procedure.  
USE AdventureWorks2022;  
GO  

CREATE PROCEDURE HumanResources.uspGetAllEmployeesTest  
AS  
    SET NOCOUNT ON;  
    SELECT LastName, FirstName, Department  
    FROM HumanResources.vEmployeeDepartmentHistory;  
GO  
  
--Rename the stored procedure.  
EXEC sp_rename 'HumanResources.uspGetAllEmployeesTest', 'uspEveryEmployeeTest'; 

参照

ALTER PROCEDURE (Transact-SQL)
CREATE PROCEDURE (Transact-SQL)
ストアド プロシージャの作成
ストアド プロシージャの変更
ストアド プロシージャの削除
ストアド プロシージャの定義の表示
ストアド プロシージャの依存関係の表示