sp_describe_cursor_columns (Transact-SQL)
S'applique à : SQL Server
Fournit un rapport des attributs des colonnes contenues dans le jeu de résultats d'un curseur côté serveur.
Conventions de la syntaxe Transact-SQL
Syntaxe
sp_describe_cursor_columns
[ @cursor_return = ] cursor_return OUTPUT
, [ @cursor_source = ] { N'local' | N'global' | N'*cursor_source*' }
, [ @cursor_identity = ] N'cursor_identity'
[ ; ]
Arguments
[ @cursor_return = ] sortie de cursor_return
Nom d’une variable de curseur déclarée à recevoir la sortie du curseur. @cursor_return est un paramètre OUTPUT de type int, sans valeur par défaut, et ne doit pas être associé à des curseurs au moment sp_describe_cursor_columns
de l’appel. Le curseur retourné est un curseur en lecture seule, dynamique et permettant les défilements.
[ @cursor_source = ] { N’local' | N’global' | N’cursor_source' }
Spécifie si le curseur signalé est spécifié, à l’aide du nom d’un curseur local , d’un curseur global ou d’une variable de curseur. @cursor_source est nvarchar(30), sans valeur par défaut.
[ @cursor_identity = ] N’cursor_identity'
Nom d’un curseur créé par une DECLARE CURSOR
instruction. @cursor_identity est nvarchar(128), sans valeur par défaut.
Si le curseur a le
LOCAL
mot clé ou est définiLOCAL
par défaut, @cursor_identity estlocal
.Si le curseur a le
GLOBAL
mot clé ou est définiGLOBAL
par défaut, @cursor_identity estglobal
. @cursor_identity peut également être le nom d’un curseur de serveur d’API ouvert par une application ODBC, puis nommé en appelantSQLSetCursorName
.Sinon, @cursor_identity est le nom d’une variable de curseur associée à un curseur ouvert.
Valeurs des codes de retour
Aucune.
Curseurs retournés
sp_describe_cursor_columns
encapsule son rapport en tant que paramètre de sortie Transact-SQL cursor
. Cela permet aux lots Transact-SQL, aux procédures stockées et aux déclencheurs d’utiliser la sortie d’une ligne à la fois. Cela signifie également que la procédure ne peut pas être appelée directement à partir des fonctions d’API de base de données. Le cursor
paramètre de sortie doit être lié à une variable de programme, mais les API de base de données ne prennent pas en charge les paramètres de liaison cursor
ou les variables.
Le tableau suivant montre le format du curseur retourné à l’aide sp_describe_cursor_columns
de .
Nom de la colonne | Type de données | Description |
---|---|---|
column_name |
sysname | Nom attribué à la colonne du jeu de résultats. La colonne est NULL si la colonne a été spécifiée sans clause associée AS .Autorise la valeur Null. |
ordinal_position |
int | Position relative de la colonne par rapport à la colonne la plus à gauche du jeu de résultats. La première colonne est en position 0 . |
column_characteristics_flags |
int | Masque de bits qui indique les informations stockées dans DBCOLUMNFLAGS OLE DB. Il peut s’agir d’une ou d’une combinaison des valeurs suivantes :1 = Signet2 = Longueur fixe4 = Nullable8 = Contrôle de version des lignes16 = Colonne pouvant être mise à jour (définie pour les colonnes projetées d’un curseur qui n’est pas FOR UPDATE clause et, s’il existe une telle colonne, ne peut être qu’une seule par curseur).Lorsque les valeurs binaires sont combinées, les caractéristiques des valeurs binaires combinées s'appliquent. Par exemple, si la valeur du bit est 6 , la colonne est une colonne de longueur fixe (2 ), nullable (4 ). |
column_size |
int | Taille maximale possible d'une valeur de cette colonne. |
data_type_sql |
smallint | Nombre qui indique le type de données SQL Server de la colonne. |
column_precision |
tinyint | Précision maximale de la colonne en fonction de la bPrecision valeur dans OLE DB. |
column_scale |
tinyint | Nombre de chiffres à droite de la virgule décimale pour les types de données numériques ou décimaux en fonction de la bScale valeur dans OLE DB. |
order_position |
int | Position de la colonne dans la clé d'ordre relative à la colonne la plus à gauche si la colonne prend part à la définition de l'ordre du jeu de résultats. |
order_direction |
varchar(1) | A = La colonne se trouve dans la clé d’ordre et l’ordre est croissant.D = La colonne se trouve dans la clé d’ordre et l’ordre décroissant.NULL = La colonne ne participe pas à l’ordre.Autorise la valeur Null. |
hidden_column |
smallint | 0 = cette colonne apparaît dans la liste de sélection.1 = Réservé pour une utilisation ultérieure. |
columnid |
int | Identification de la colonne de base. Si la colonne du jeu de résultats a été générée à partir d’une expression, columnid est -1 . |
objectid |
int | ID d'objet de l'objet ou de la table de base qui fournit la colonne. Si la colonne du jeu de résultats a été générée à partir d’une expression, objectid est -1 . |
dbid |
int | ID de la base de données contenant la table de base qui fournit la colonne. Si la colonne du jeu de résultats a été générée à partir d’une expression, dbid est -1 . |
dbname |
sysname | Nom de la base de données contenant la table de base qui fournit la colonne. Si la colonne du jeu de résultats a été générée à partir d’une expression, dbname est NULL .Autorise la valeur Null. |
Notes
sp_describe_cursor_columns
décrit les attributs des colonnes dans le jeu de résultats d’un curseur serveur, comme le nom et le type de données de chaque curseur. Permet sp_describe_cursor
de décrire les attributs globaux du curseur du serveur. Permet sp_describe_cursor_tables
d’utiliser un rapport des tables de base référencées par le curseur. Pour obtenir un rapport des curseurs de serveur Transact-SQL visibles sur la connexion, utilisez sp_cursor_list
.
autorisations
Nécessite l'appartenance au rôle public .
Exemples
L'exemple suivant ouvre un curseur global et utilise sp_describe_cursor_columns
pour fournir un rapport sur colonnes utilisées dans le curseur.
USE AdventureWorks2022;
GO
-- Declare and open a global cursor.
DECLARE abc CURSOR KEYSET FOR
SELECT LastName
FROM Person.Person;
GO
OPEN abc;
-- Declare a cursor variable to hold the cursor output variable
-- from sp_describe_cursor_columns.
DECLARE @Report CURSOR;
-- Execute sp_describe_cursor_columns into the cursor variable.
EXEC master.dbo.sp_describe_cursor_columns
@cursor_return = @Report OUTPUT,
@cursor_source = N'global',
@cursor_identity = N'abc';
-- Fetch all the rows from the sp_describe_cursor_columns 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_columns.
CLOSE @Report;
DEALLOCATE @Report;
GO
-- Close and deallocate the original cursor.
CLOSE abc;
DEALLOCATE abc;
GO