次の方法で共有


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

ストアド プロシージャの定義は、オブジェクト エクスプローラー メニュー オプションを使用してSQL Server Management Studioで表示することも、Transact-SQL を使用してクエリ エディターで表示することもできます。 このトピックでは、オブジェクト エクスプローラーでプロシージャの定義を表示する方法について説明します。さらに、クエリ エディターでのシステム プロシージャ、システム関数、およびオブジェクト カタログ ビューを使用した表示方法について説明します。

はじめに

セキュリティ

アクセス許可

システム ストアド プロシージャ: sp_helptext
ロール public のメンバーシップが必要です。 システム オブジェクトの定義は、公開されます。 ユーザー オブジェクトの定義は、オブジェクトの所有者、または次のいずれかの権限を許可された人が表示できます。ALTER、CONTROL、TAKE OWNERSHIP、VIEW DEFINITION。

システム関数: OBJECT_DEFINITION
システム オブジェクトの定義は、公開されます。 ユーザー オブジェクトの定義は、オブジェクトの所有者、または次のいずれかの権限を許可された人が表示できます。ALTER、CONTROL、TAKE OWNERSHIP、VIEW DEFINITION。 これらの権限は db_ownerdb_ddladmin、および db_securityadmin 固定データベース ロールのメンバーが暗黙的に保有します。

オブジェクト カタログ ビュー: sys.sql_modules
カタログ ビューでのメタデータの表示が、ユーザーが所有しているかそのユーザーが権限を許可されている、セキュリティ保護可能なメタデータに制限されます。 詳細については、「 Metadata Visibility Configuration」を参照してください。

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

次のいずれかを使用します。

SQL Server Management Studio を使用する

オブジェクト エクスプローラーでプロシージャの定義を表示するには

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

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

  3. [ストアド プロシージャ] を展開し、プロシージャを右クリックしてから [ストアド プロシージャをスクリプト化] をクリックします。その後、次のいずれかをクリックします: [新規作成][構造変更][削除および作成]

  4. 新しいクエリ エディター ウィンドウを選択します。 プロシージャの定義が表示されます。

Transact-SQL の使用

クエリ エディターでプロシージャの定義を表示するには

システム ストアド プロシージャ: sp_helptext

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

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

  3. クエリ ウィンドウで、sp_helptext システム ストアド プロシージャを使用した次のステートメントを入力します。 データベース名とストアド プロシージャ名を変更し、目的のデータベースとストアド プロシージャを参照するようにします。

    USE AdventureWorks2012;  
    GO  
    EXEC sp_helptext N'AdventureWorks2012.dbo.uspLogError';  
    

システム関数: OBJECT_DEFINITION

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

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

  3. クエリ ウィンドウで、OBJECT_DEFINITION システム関数を使用した次のステートメントを入力します。 データベース名とストアド プロシージャ名を変更し、目的のデータベースとストアド プロシージャを参照するようにします。

    USE AdventureWorks2012;  
    GO  
    SELECT OBJECT_DEFINITION (OBJECT_ID(N'AdventureWorks2012.dbo.uspLogError'));  
    

オブジェクト カタログ ビュー: sys.sql_modules

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

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

  3. クエリ ウィンドウで、sys.sql_modules カタログ ビューを使用した次のステートメントを入力します。 データベース名とストアド プロシージャ名を変更し、目的のデータベースとストアド プロシージャを参照するようにします。

    USE AdventureWorks2012;  
    GO  
    SELECT definition  
    FROM sys.sql_modules  
    WHERE object_id = (OBJECT_ID(N'AdventureWorks2012.dbo.uspLogError'));  
    

参照

ストアド プロシージャの作成
ストアド プロシージャの変更
ストアド プロシージャの削除
ストアド プロシージャの名前の変更
OBJECT_DEFINITION (Transact-SQL)
sys.sql_modules (Transact-SQL)
sp_helptext (Transact-SQL)
OBJECT_ID (Transact-SQL)