Partager via


sp_describe_cursor_tables (Transact-SQL)

Fournit un rapport des objets ou tables de base référencés par un curseur de serveur.

Icône Lien de rubriqueConventions de la syntaxe de Transact-SQL

Syntaxe

sp_describe_cursor_tables 
     [ @cursor_return = ] output_cursor_variable OUTPUT 
     { [ , [ @cursor_source = ] N'local'
     , [@cursor_identity = ] N'local_cursor_name' ] 
   | [ , [ @cursor_source = ] N'global'
     , [ @cursor_identity = ] N'global_cursor_name' ] 
   | [ , [ @cursor_source = ] N'variable'
     , [ @cursor_identity = ] N'input_cursor_variable' ] 
     } 

Arguments

[ @cursor_return = ] output_cursor_variableOUTPUT

Nom d'une variable de curseur déclarée pour recevoir la sortie du curseur. L'argument output_cursor_variable est du type cursor, n'a pas de valeur par défaut et ne doit pas être associé à des curseurs au moment de l'appel de sp_describe_cursor_tables. Le curseur retourné est un curseur en lecture seule, dynamique et permettant les défilements.

[ @cursor_source = ] { N'local' | N'global' | N'variable' }

Indique si le curseur qui fait l'objet du rapport est défini en utilisant le nom d'un curseur local, d'un curseur global ou d'une variable de curseur. Le paramètre est du type nvarchar(30).

[ @cursor_identity = ] N'local_cursor_name'

Nom d'un curseur créé par une instruction DECLARE CURSOR contenant soit le mot clé LOCAL, soit celui défini par défaut pour LOCAL. local_cursor_name est du type nvarchar(128).

[ @cursor_identity = ] N'global_cursor_name'

Indique le nom d'un curseur créé par une instruction DECLARE CURSOR ayant le mot clé GLOBAL ou, par défaut, la valeur GLOBAL. global_cursor_name peut également être le nom du curseur de serveur API ouvert par une application ODBC qui a ensuite nommé le curseur en appelant SQLSetCursorName.global_cursor_name est du type nvarchar(128).

[ @cursor_identity = ] N'input_cursor_variable' ]

Nom d'une variable de curseur associée à un curseur ouvert. L'argument input_cursor_variable est du type nvarchar(128)

Notes

La procédure sp_describe_cursor_tables décrit les tables de base qui sont référencées par un curseur de serveur. Utilisez sp_describe_cursor_columns pour obtenir la description des attributs du jeu de résultats retourné par le curseur. Utilisez la procédure sp_describe_cursor pour obtenir la description des caractéristiques globales du curseur, par exemple sa capacité à permettre le défilement et les mises à jour. Utilisez la procédure stockée sp_cursor_list pour obtenir un rapport sur les curseurs de serveur Transact-SQL qui sont visibles à la connexion.

Autorisations

Nécessite l'appartenance au rôle public.

Valeurs des codes retournés

Aucune

Curseurs retournés

sp_describe_cursor_tables encapsule son rapport en paramètre de sortie Transact-SQL cursor. Ceci permet aux lots d'instructions Transact-SQL, aux procédures stockées et aux déclencheurs de travailler sur une seule ligne de sortie à la fois. Par ailleurs, la procédure ne peut pas être appelée directement depuis les fonctions d'API. Le paramètre de sortie cursor doit être lié à une variable de programme, mais les API de base de données ne prennent pas en charge les paramètres ou les variables cursor de liaison.

La table suivante montre le format du curseur qui est retourné en utilisant sp_describe_cursor_tables.

Nom de colonne Type de données Description

table_owner

sysname

ID d'utilisateur du propriétaire de table

table_name

sysname

Nom de l'objet ou de la table de base. Dans SQL Server 2005, les curseurs de serveur retournent toujours l'objet défini par l'utilisateur, et non les tables de base. Dans SQL Server 2000, les curseurs de serveur retournent les tables de base, sauf si la vue ou fonction est créée à l'aide de WITH VIEW_METADATA.

optimizer_hint

smallint

Bitmap composée d'un ou plusieurs des éléments suivants :

1 = Verrouillage au niveau de la ligne (ROWLOCK)

4 = Verrouillage au niveau de la page (PAGELOCK)

8 = Verrou de table (TABLOCK)

16 = Verrou de table exclusif (TABLOCKX)

32 = Verrou de mise à jour (UPDLOCK)

64 = Pas de verrou (NOLOCK)

128 = Option de première ligne rapide (FASTFIRST)

4096 = Lecture des sémantiques répétées lorsqu'elles sont utilisées avec DECLARE CURSOR (HOLDLOCK)

Si vous fournissez plusieurs options, le système utilise les plus restrictives. Toutefois, sp_describe_cursor_tables affiche les indicateurs spécifiés dans la requête.

lock_type

smallint

Type de verrou de défilement demandé soit explicitement, soit implicitement pour chaque table de base sous-jacente de ce curseur. La valeur peut être l'une des suivantes :

0 = Aucun

1 = Partagé

3 = Mise à jour

server_name

sysname, nullable

Nom du serveur lié sur lequel réside la table. Prend la valeur NULL lorsque OPENQUERY ou OPENROWSET sont utilisés.

objectid

int

ID d'objet de la table. Prend la valeur 0 lorsque OPENQUERY ou OPENROWSET sont utilisés.

dbid

int

ID de la base de données dans laquelle réside la table. Prend la valeur 0 lorsque OPENQUERY ou OPENROWSET sont utilisés.

dbname

sysname, nullable

Nom de la base de données dans laquelle réside la table. Prend la valeur NULL lorsque OPENQUERY ou OPENROWSET sont utilisés.

Exemple

Cet exemple ouvre un curseur global et utilise sp_describe_cursor_tables pour fournir un rapport sur les tables qui sont référencées par le curseur.

USE AdventureWorks
GO
-- Declare and open a global cursor.
DECLARE abc CURSOR KEYSET FOR
SELECT LastName
FROM Person.Contact
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

Voir aussi

Référence

CURSOR_STATUS (Transact-SQL)
DECLARE CURSOR (Transact-SQL)
sp_cursor_list (Transact-SQL)
sp_describe_cursor (Transact-SQL)
sp_describe_cursor_columns (Transact-SQL)
Procédures stockées système (Transact-SQL)

Autres ressources

Curseurs (moteur de base de données)

Aide et Informations

Assistance sur SQL Server 2005