ストアド プロシージャの定義を表示する
適用対象:SQL ServerAzure SQL DatabaseAzure SQL Managed InstanceAzure Synapse AnalyticsAnalytics Platform System (PDW)
ストアド プロシージャの定義を表示する
この記事では、オブジェクト エクスプローラーでプロシージャの定義を表示する方法について説明します。さらに、クエリ エディターでのシステム プロシージャ、システム関数、およびオブジェクト カタログ ビューを使用した表示方法について説明します。
セキュリティ
アクセス許可
システム ストアド プロシージャ: 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」を参照してください。
Note
システム ストアド プロシージャ sp_helptext
は、Azure Synapse Analytics ではサポートされていません。 代わりに、sys.sql_modules
オブジェクト カタログ ビューを使用します。 サンプルについては、この記事で後述します。
ストアド プロシージャの定義の表示方法
次のいずれかを使用します。
SQL Server Management Studio を使用する
オブジェクト エクスプローラーでプロシージャの定義を表示するには
オブジェクト エクスプローラーで、データベース エンジンのインスタンスに接続し、そのインスタンスを展開します。
[データベース]を展開し、プロシージャが属するデータベースを展開し、 [プログラミング]を展開します。
[ストアド プロシージャ]を展開します。プロシージャを右クリックし、[ストアド プロシージャをスクリプト化]を選択し、[CREATE]、[ALTER]、[DROP および CREATE]のいずれかを選択します。
新しいクエリ エディター ウィンドウを選択します。 プロシージャの定義が表示されます。
Transact-SQL の使用
クエリ エディターでプロシージャの定義を表示するには
システム ストアド プロシージャ: sp_helptext
オブジェクト エクスプローラーで、データベース エンジンのインスタンスに接続します。
ツール バーで、 [新しいクエリ] を選択します。
クエリ ウィンドウで、
sp_helptext
システム ストアド プロシージャを使用した次のステートメントを入力します。 データベース名とストアド プロシージャ名を変更し、目的のデータベースとストアド プロシージャを参照するようにします。USE AdventureWorks2022; GO EXEC sp_helptext N'AdventureWorks2022.dbo.uspLogError';
システム関数: OBJECT_DEFINITION
オブジェクト エクスプローラーで、データベース エンジンのインスタンスに接続します。
ツール バーで、 [新しいクエリ] を選択します。
クエリ ウィンドウで、
OBJECT_DEFINITION
システム関数を使用した次のステートメントを入力します。 データベース名とストアド プロシージャ名を変更し、目的のデータベースとストアド プロシージャを参照するようにします。USE AdventureWorks2022; GO SELECT OBJECT_DEFINITION (OBJECT_ID(N'AdventureWorks2022.dbo.uspLogError'));
オブジェクト カタログ ビュー: sys.sql_modules
オブジェクト エクスプローラーで、データベース エンジンのインスタンスに接続します。
ツール バーで、 [新しいクエリ] を選択します。
クエリ ウィンドウで、
sys.sql_modules
カタログ ビューを使用した次のステートメントを入力します。 データベース名とストアド プロシージャ名を変更し、目的のデータベースとストアド プロシージャを参照するようにします。USE AdventureWorks2022; GO SELECT [definition] FROM sys.sql_modules WHERE object_id = (OBJECT_ID(N'dbo.uspLogError'));
関連項目
フィードバック
https://aka.ms/ContentUserFeedback」を参照してください。
以下は間もなく提供いたします。2024 年を通じて、コンテンツのフィードバック メカニズムとして GitHub の issue を段階的に廃止し、新しいフィードバック システムに置き換えます。 詳細については、「フィードバックの送信と表示