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

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

このトピックの内容

  • 作業を開始する準備:

    制限事項と制約事項

    セキュリティ

  • ストアド プロシージャの名前を変更するために使用するもの:

    SQL Server Management Studio

    Transact-SQL

作業を開始する準備

制限事項と制約事項

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

  • ストアド プロシージャの名前を変更しても、sys.sql_modules カタログ ビューの定義列にある、対応するオブジェクトの名前は変更されません。 したがって、このオブジェクトの種類の名前を変更しないことをお勧めします。 代わりに、ストアド プロシージャを削除して新しい名前で再作成してください。

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

セキュリティ

権限

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

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

[トップに戻る] リンクで使用される矢印アイコン[Top]

SQL Server Management Studio の使用

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

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

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

  3. ストアド プロシージャの依存関係を確認します

  4. [ストアド プロシージャ] を展開し、名前を変更するプロシージャを右クリックして、[名前の変更] をクリックします。

  5. プロシージャ名を変更します。

  6. 依存オブジェクトまたはスクリプトで参照しているプロシージャ名を変更します。

[トップに戻る] リンクで使用される矢印アイコン[Top]

Transact-SQL の使用

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

  1. データベース エンジンに接続します。

  2. [標準] ツール バーの [新しいクエリ] をクリックします。

  3. 次の例をコピーしてクエリ ウィンドウに貼り付け、[実行] をクリックします。 この例では、プロシージャを削除した後、新しい名前でプロシージャを再作成することによってプロシージャの名前を変更する方法を示します。 最初の例では、'HumanResources.uspGetAllEmployeesTest という名前のストアド プロシージャを作成します。 2 番目の例では、ストアド プロシージャの名前を HumanResources.uspEveryEmployeeTest に変更します。

--Create the stored procedure.
USE AdventureWorks2012;
GO
IF OBJECT_ID ( 'HumanResources.uspGetAllEmployeesTest', 'P' ) IS NOT NULL 
    DROP PROCEDURE HumanResources.uspGetAllEmployeesTest;
GO
CREATE PROCEDURE HumanResources.uspGetAllEmployeesTest
AS
    SET NOCOUNT ON;
    SELECT LastName, FirstName, Department
    FROM HumanResources.vEmployeeDepartmentHistory;
GO

--Rename the stored procedure.
USE AdventureWorks2012;
GO
IF OBJECT_ID ( 'HumanResources.uspGetAllEmployeesTest', 'P' ) IS NOT NULL 
    DROP PROCEDURE HumanResources.uspGetAllEmployeesTest;
GO
CREATE PROCEDURE HumanResources.uspEveryEmployeeTest
AS
    SET NOCOUNT ON;
    SELECT LastName, FirstName, Department
    FROM HumanResources.vEmployeeDepartmentHistory;
GO

[トップに戻る] リンクで使用される矢印アイコン[Top]

関連項目

参照

ALTER PROCEDURE (Transact-SQL)

CREATE PROCEDURE (Transact-SQL)

概念

ストアド プロシージャの作成

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

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

ストアド プロシージャの定義の表示

ストアド プロシージャの依存関係の表示