sp_stored_procedures (Transact-SQL)
適用対象:SQL ServerAzure SQL DatabaseAzure SQL Managed Instance
現在の環境内にあるストアド プロシージャの一覧を返します。
構文
sp_stored_procedures
[ [ @sp_name = ] N'sp_name' ]
[ , [ @sp_owner = ] N'sp_owner' ]
[ , [ @sp_qualifier = ] N'sp_qualifier' ]
[ , [ @fUsePattern = ] fUsePattern ]
[ ; ]
引数
[ @sp_name = ] N'sp_name'
カタログ情報を返すために使用するプロシージャの名前。 @sp_nameは nvarchar(390) で、既定値は NULL
. ワイルドカードのパターン マッチングがサポートされています。
[ @sp_owner = ] N'sp_owner'
プロシージャが属するスキーマの名前を指定します。 @sp_ownerは nvarchar(384) で、既定値は NULL
. ワイルドカードのパターン マッチングがサポートされています。 @sp_ownerが指定されていない場合は、基になるデータベース管理システム (DBMS) の既定のプロシージャ可視性ルールが適用されます。
SQL Server では、現在のスキーマに指定した名前のプロシージャが含まれている場合、そのプロシージャが返されます。 非修飾ストアド プロシージャが指定されている場合、データベース エンジンは次の順序でプロシージャを検索します。
現在のデータベースの
sys
スキーマ。バッチまたは動的 SQL で実行される場合の呼び出し元の既定のスキーマ。または、修飾されていないプロシージャ名が別のプロシージャ定義の本文内に表示される場合は、この他のプロシージャを含むスキーマが次に検索されます。
現在のデータベースの
dbo
スキーマ。
[ @sp_qualifier = ] N'sp_qualifier'
プロシージャ修飾子の名前。 @sp_qualifierは sysname で、既定値は NULL
. さまざまな DBMS 製品では、フォーム <qualifier>.<schema>.<name>
内のテーブルの 3 部構成の名前付けがサポートされています。 SQL Server では、 @sp_qualifier はデータベース名を表します。 一部の製品では、テーブルのデータベース環境のサーバー名を表します。
[ @fUsePattern = ] fUsePattern
アンダースコア ()、パーセント (_
%
)、または角かっこ ([
および]
) をワイルドカード文字として解釈するかどうかを決定します。 @fUsePatternはビットで、既定値は 1
.
0
= パターン マッチングがオフです。1
= パターン マッチングがオンです。
リターン コードの値
なし。
結果セット
列名 | データ型 | 説明 |
---|---|---|
PROCEDURE_QUALIFIER |
sysname | プロシージャ修飾子名。 この列は NULL . |
PROCEDURE_OWNER |
sysname | プロシージャ所有者の名前。 この列は常に値が返されます。 |
PROCEDURE_NAME |
nvarchar(134) | プロシージャ名。 この列は常に値が返されます。 |
NUM_INPUT_PARAMS |
int | 将来利用するために予約されています。 |
NUM_OUTPUT_PARAMS |
int | 将来利用するために予約されています。 |
NUM_RESULT_SETS |
int | 将来利用するために予約されています。 |
REMARKS |
varchar(254) | プロシージャの説明。 SQL Server は、この列の値を返しません。 |
PROCEDURE_TYPE |
smallint | プロシージャの種類。 SQL Server は常に 2.0 を返します。 この値には、次のいずれかのオプションを指定できます。 0 = SQL_PT_UNKNOWN 1 = SQL_PT_PROCEDURE 2 = SQL_PT_FUNCTION |
解説
相互運用性を最大限に高める場合、ゲートウェイ クライアントでは、SQL 標準パターン マッチング (パーセント () 文字とアンダースコア (%
_
) ワイルド文字カード文字のみを想定する必要があります。
現在のユーザーの特定のストアド プロシージャへの実行アクセスに関するアクセス許可情報は必ずしもチェックされません。そのため、アクセスは保証されません。 3 部構成の名前付けのみが使用されます。 つまり、SQL Server に対して実行すると、リモート ストアド プロシージャ (4 部構成の名前付けが必要) ではなく、ローカル ストアド プロシージャのみが返されます。 サーバー属性 ACCESSIBLE_SPROC
が結果セット sp_server_info
の Y の場合、現在のユーザーが実行できるストアド プロシージャのみが返されます。
sp_stored_procedures
は ODBC の場合と SQLProcedures
同じです。 返される結果は、 PROCEDURE_QUALIFIER
, PROCEDURE_OWNER
,および PROCEDURE_NAME
.
アクセス許可
スキーマに対する SELECT
アクセス許可が必要です。
例
A. 現在のデータベース内のすべてのストアド プロシージャを返す
次の例では、AdventureWorks2022 データベース内のすべてのストアド プロシージャを返します。
USE AdventureWorks2022;
GO
EXEC sp_stored_procedures;
B. 1 つのストアド プロシージャを返す
次の例では、ストアド プロシージャの結果セットを uspLogError
返します。
USE AdventureWorks2022;
GO
sp_stored_procedures N'uspLogError',
N'dbo',
N'AdventureWorks2022',
1;
関連するコンテンツ
フィードバック
https://aka.ms/ContentUserFeedback」を参照してください。
以下は間もなく提供いたします。2024 年を通じて、コンテンツのフィードバック メカニズムとして GitHub の issue を段階的に廃止し、新しいフィードバック システムに置き換えます。 詳細については、「フィードバックの送信と表示