sp_stored_procedures (Transact-SQL)
更新 : 2006 年 7 月 17 日
現在の環境内にあるストアド プロシージャの一覧を返します。
構文
sp_stored_procedures [ [ @sp_name = ] 'name' ]
[ , [ @sp_owner = ] 'schema']
[ , [ @sp_qualifier = ] 'qualifier' ]
[ , [@fUsePattern = ] 'fUsePattern' ]
引数
- [ @sp_name = ] 'name'
カタログ情報を返すために使用するプロシージャの名前を指定します。name のデータ型は nvarchar(390) で、既定値は NULL です。ワイルドカードによるパターン照合を使用できます。
[ @sp_owner = ] 'schema'
プロシージャが所属するスキーマの名前を指定します。schema のデータ型は nvarchar(384) で、既定値は NULL です。ワイルドカードによるパターン照合を使用できます。owner を指定しない場合は、基になる DBMS の既定のプロシージャ可視性規則が適用されます。SQL Server では、指定した名前のプロシージャが現在のスキーマに含まれている場合、そのプロシージャが返されます。修飾名なしでストアド プロシージャを指定した場合、データベース エンジンでは次の順序でプロシージャが検索されます。
- 現在のデータベースの sys スキーマ。
- バッチまたは動的 SQL で実行された場合は、呼び出し側の既定のスキーマ。修飾名なしのプロシージャ名が別のプロシージャ定義内にある場合は、そのプロシージャを含むスキーマが次に検索されます。既定のスキーマの詳細については、「ユーザーとスキーマの分離」を参照してください。
- 現在のデータベースの dbo スキーマ。
- [ @qualifier = ] 'qualifier'
プロシージャ修飾子の名前を指定します。qualifier のデータ型は sysname で、既定値は NULL です。3 つの要素で構成されるテーブル名 (qualifier**.schema.**name) は、多くの DBMS 製品で使用できます。SQL Server では、qualifier はデータベース名を表します。製品によっては、テーブルのデータベース環境のサーバー名を表す場合があります。
[ @fUsePattern = ] 'fUsePattern'
アンダースコア (_)、パーセント (%)、かっこ ([ ]) をワイルドカード文字として解釈するかどうかを指定します。fUsePattern のデータ型は bit で、既定値は 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-92 標準のパターン照合 (パーセント (%) とアンダースコア (_) ワイルドカード文字) のみを前提としています。
特定のストアド プロシージャに対する、現在のユーザーの実行アクセスについての権限情報は必ずしもチェックされないため、アクセスは保証されません。また、3 つの要素で構成される名前だけが使用されることに注意してください。つまり、SQL Server に対して実行した場合、4 つの要素で構成される名前を必要とするリモート ストアド プロシージャではなく、ローカル ストアド プロシージャだけが返されます。sp_server_info の結果セットで、サーバー属性 ACCESSIBLE_SPROC が Y となっている場合は、現在のユーザーが実行できるストアド プロシージャだけが返されます。
sp_stored_procedures は ODBC の SQLProcedures に相当します。返される結果は、PROCEDURE_QUALIFIER、PROCEDURE_OWNER、および PROCEDURE_NAME の順序に従って並べ替えられます。
権限
スキーマに対する SELECT 権限が必要です。
戻り値
なし
例
A. 現在のデータベース内のすべてのストアド プロシージャを返す
次の例では、AdventureWorks
データベース内のすべてのストアド プロシージャを返します。
USE AdventureWorks;
GO
sp_stored_procedures;
B. 1 つのストアド プロシージャを返す
次の例では、uspLogError
ストアド プロシージャの結果セットを返します。
USE AdventureWorks;
GO
sp_stored_procedures N'uspLogError', N'dbo', N'AdventureWorks', 1;
参照
関連項目
ストアド プロシージャ カタログ (Transact-SQL)
システム ストアド プロシージャ (Transact-SQL)
ヘルプおよび情報
変更履歴
リリース | 履歴 |
---|---|
2006 年 7 月 17 日 |
|