ストアド プロシージャの定義の表示
ストアド プロシージャの定義は、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_owner、db_ddladmin、および db_securityadmin 固定データベース ロールのメンバーが暗黙的に保有します。オブジェクト カタログ ビュー: sys.sql_modules
カタログ ビューでのメタデータの表示が、ユーザーが所有しているかそのユーザーが権限を許可されている、セキュリティ保護可能なメタデータに制限されます。 詳細については、「メタデータ表示の構成」を参照してください。
ストアド プロシージャの定義の表示方法
次のいずれかの方法で行います。
SQL Server Management Studio
Transact-SQL
SQL Server Management Studio の使用
オブジェクト エクスプローラーでプロシージャの定義を表示するには
オブジェクト エクスプローラーで、データベース エンジン に接続し、そのインスタンスを展開します。
[データベース] を展開し、プロシージャが属するデータベースを展開し、[プログラミング] を展開します。
[ストアド プロシージャ] を展開します。プロシージャを右クリックし、[ストアド プロシージャをスクリプト化] を選択し、[CREATE]、[ALTER]、または [DROP および CREATE] のいずれかをクリックします。
[新しいクエリ エディター ウィンドウ] をクリックします。 プロシージャの定義が表示されます。
[先頭に戻る]
Transact-SQL の使用
クエリ エディターでプロシージャの定義を表示するには
システム ストアド プロシージャ: sp_helptext
オブジェクト エクスプローラーでデータベース エンジンのインスタンスに接続します。
ツール バーの [新しいクエリ] をクリックします。
クエリ ウィンドウで、sp_helptext システム ストアド プロシージャを使用した次のステートメントを入力します。 データベース名とストアド プロシージャ名を変更し、目的のデータベースとストアド プロシージャを参照するようにします。
USE AdventureWorks2012; GO EXEC sp_helptext N'AdventureWorks2012.dbo.uspLogError';
システム関数: OBJECT_DEFINITION
オブジェクト エクスプローラーでデータベース エンジンのインスタンスに接続します。
ツール バーの [新しいクエリ] をクリックします。
クエリ ウィンドウで、OBJECT_DEFINITION システム関数を使用した次のステートメントを入力します。 データベース名とストアド プロシージャ名を変更し、目的のデータベースとストアド プロシージャを参照するようにします。
USE AdventureWorks2012; GO SELECT OBJECT_DEFINITION (OBJECT_ID(N'AdventureWorks2012.dbo.uspLogError'));
オブジェクト カタログ ビュー: sys.sql_modules
オブジェクト エクスプローラーでデータベース エンジンのインスタンスに接続します。
ツール バーの [新しいクエリ] をクリックします。
クエリ ウィンドウで、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)