Share via


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

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

  • 作業を開始する準備: セキュリティ

  • プロシージャの定義を 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
    カタログ ビューでのメタデータの表示が、ユーザーが所有しているかそのユーザーが権限を許可されている、セキュリティ保護可能なメタデータに制限されます。 詳細については、「メタデータ表示の構成」を参照してください。

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

次のいずれかの方法で行います。

  • SQL Server Management Studio

  • Transact-SQL

SQL Server Management Studio の使用

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

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

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

  3. [ストアド プロシージャ] を展開します。プロシージャを右クリックし、[ストアド プロシージャをスクリプト化] を選択し、[CREATE][ALTER]、または [DROP および CREATE] のいずれかをクリックします。

  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)

概念

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

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

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

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