sp_describe_cursor_tables (Transact-SQL)
適用対象:SQL Server
サーバー カーソルによって参照されるオブジェクトまたはベース テーブルを報告します。
構文
sp_describe_cursor_tables
[ @cursor_return = ] cursor_return OUTPUT
, [ @cursor_source = ] { N'local' | N'global' | N'variable' }
, [ @cursor_identity = ] N'cursor_identity'
[ ; ]
引数
[ @cursor_return = ] cursor_return OUTPUT
カーソル出力を受け取る宣言済みカーソル変数の名前。 @cursor_returnは、既定値のない OUTPUT カーソルであり、呼び出された時点sp_describe_cursor_tables
でカーソルに関連付けてはなりません。 返されるカーソルは、スクロール可能な動的な読み取り専用カーソルです。
[ @cursor_source = ] { N'local' |N'global' |N'variable' }
ローカル カーソル、グローバル カーソル、またはカーソル変数の名前を使用して、報告対象のカーソルを指定するかどうかを指定します。 @cursor_sourceは nvarchar(30) で、既定値はありません。
[ @cursor_identity = ] N'cursor_identity'
@cursor_sourceが指定されている場合、@cursor_identityは、ステートメントによって作成されたDECLARE CURSOR
カーソルの名前で、キーワード (keyword)を持つかLOCAL
、既定LOCAL
で .local
@cursor_sourceが指定されている場合、@cursor_identityは、ステートメントによって作成されたDECLARE CURSOR
カーソルの名前で、キーワード (keyword)を持つかGLOBAL
、既定GLOBAL
で .global
@cursor_identityは、ODBC アプリケーションによって開かれた API サーバー カーソルの名前で、呼び出SQLSetCursorName
してカーソルに名前を付けることもできます。
@cursor_sourceのvariable
場合、@cursor_identityは開いているカーソルに関連付けられているカーソル変数の名前です。
@cursor_identityは nvarchar(128) で、既定値はありません。
リターン コードの値
なし。
返されるカーソル
sp_describe_cursor_tables
は、レポートを Transact-SQL カーソル 出力パラメーターとしてカプセル化します。 これにより、Transact-SQL のバッチ、ストアド プロシージャ、およびトリガーは、一度に 1 行ずつ出力を操作できます。 これは、API 関数からプロシージャを直接呼び出すことはできません。 カーソル出力パラメーターはプログラム変数にバインドする必要がありますが、API ではカーソル パラメーターまたは変数のバインドはサポートされていません。
次の表は、.. によって返される sp_describe_cursor_tables
カーソルの形式を示しています。
列名 | データ型 | 説明 |
---|---|---|
table_owner |
sysname | テーブル所有者のユーザー ID。 |
table_name |
sysname | オブジェクトまたはベース テーブルの名前。 SQL Server では、サーバー カーソルは常に、基本テーブルではなく、ユーザー指定のオブジェクトを返します。 |
optimizer_hint |
smallint | 次のオプションの 1 つ以上で構成されるビットマップ。 1 = 行レベルのロック ( ROWLOCK )4 = ページ レベルのロック ( PAGELOCK )8 = テーブル ロック ( TABLOCK )16 = 排他テーブル ロック ( TABLOCKX )32 = 更新ロック ( UPDLOCK )64 = ロックなし ( NOLOCK )128 = 高速先頭行オプション ( FASTFIRST )4096 = ( HOLDLOCK ) と共DECLARE CURSOR に使用した場合の読み取り反復可能セマンティック複数のオプションを指定する場合、システムは最も限定的なオプションを使用します。 ただし、 sp_describe_cursor_tables クエリで指定されているフラグが表示されます。 |
lock_type |
smallint | スクロール ロックの種類は、このカーソルの基になる各ベース テーブルに対して明示的または暗黙的に要求されます。 値には、次のいずれかのオプションを指定できます。 0 = なし 1 = 共有 3 = 更新 |
server_name |
sysname、null 許容 | テーブルが存在するリンク サーバーの名前。 NULL 使用する場合、またはOPENROWSET 使用される場合OPENQUERY 。 |
objectid |
int | テーブルのオブジェクト ID。 使用時 OPENQUERY または OPENROWSET 使用時は 0。 |
dbid |
int | テーブルが存在するデータベースの ID。使用時 OPENQUERY または OPENROWSET 使用時は 0。 |
dbname |
sysname、 null 許容 | テーブルが存在するデータベースの名前。 NULL 使用する場合、またはOPENROWSET 使用される場合OPENQUERY 。 |
解説
sp_describe_cursor_tables
は、サーバー カーソルによって参照されるベース テーブルを表します。 カーソルによって返される結果セットの属性の説明については、次を使用 sp_describe_cursor_columns
します。 カーソルのグローバル特性 (スクロール可能性や更新可能性など) の説明については、次を使用します sp_describe_cursor
。 接続に表示される Transact-SQL サーバー カーソルのレポートを取得するには、次を使用 sp_cursor_list
します。
アクセス許可
ロール public のメンバーシップが必要です。
例
次の例では、グローバル カーソルを開き、カーソルによって参照されるテーブルをレポートするために使用 sp_describe_cursor_tables
します。
USE AdventureWorks2022;
GO
-- Declare and open a global cursor.
DECLARE abc CURSOR KEYSET FOR
SELECT LastName
FROM Person.Person
WHERE LastName LIKE 'S%';
OPEN abc;
GO
-- Declare a cursor variable to hold the cursor output variable
-- from sp_describe_cursor_tables.
DECLARE @Report CURSOR;
-- Execute sp_describe_cursor_tables into the cursor variable.
EXEC master.dbo.sp_describe_cursor_tables
@cursor_return = @Report OUTPUT,
@cursor_source = N'global',
@cursor_identity = N'abc';
-- Fetch all the rows from the sp_describe_cursor_tables output cursor.
FETCH NEXT from @Report;
WHILE (@@FETCH_STATUS <> -1)
BEGIN
FETCH NEXT from @Report;
END
-- Close and deallocate the cursor from sp_describe_cursor_tables.
CLOSE @Report;
DEALLOCATE @Report;
GO
-- Close and deallocate the original cursor.
CLOSE abc;
DEALLOCATE abc;
GO
関連するコンテンツ
フィードバック
https://aka.ms/ContentUserFeedback」を参照してください。
以下は間もなく提供いたします。2024 年を通じて、コンテンツのフィードバック メカニズムとして GitHub の issue を段階的に廃止し、新しいフィードバック システムに置き換えます。 詳細については、「フィードバックの送信と表示