ストアド プロシージャの定義の表示
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
カタログ ビューでのメタデータの表示が、ユーザーが所有しているかそのユーザーが権限を許可されている、セキュリティ保護可能なメタデータに制限されます。 詳細については、「 Metadata Visibility Configuration」を参照してください。
ストアド プロシージャの定義の表示方法
次のいずれかを使用します。
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)
sp_helptext (Transact-SQL)
OBJECT_ID (Transact-SQL)