Notes
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de vous connecter ou de modifier des répertoires.
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de modifier des répertoires.
S’applique à :SQL Server
Azure SQL Database
Azure SQL Managed Instance
Pour un paramètre donné, CURSOR_STATUS
indique si une déclaration de curseur a retourné ou non un curseur et un jeu de résultats.
Conventions de la syntaxe Transact-SQL
Syntaxe
CURSOR_STATUS
(
{ 'local' , 'cursor_name' }
| { 'global' , 'cursor_name' }
| { 'variable' , 'cursor_variable' }
)
Les arguments
'local'
Spécifie une constante indiquant que la source du curseur est un curseur local.
'cursor_name'
Nom du curseur. Un nom de curseur doit être conforme aux règles applicables aux identificateurs de base de données.
'global'
Spécifie une constante indiquant que la source du curseur est un curseur global.
'variable'
Spécifie une constante indiquant que la source du curseur est une variable locale.
'cursor_variable'
Nom de la variable de curseur. Une variable de curseur doit être définie à l’aide du type de données cursor.
Types de retour
smallint
Valeur retournée | Nom du curseur | Variable du curseur |
---|---|---|
1 |
Le jeu de résultats de curseur comprend au moins une ligne. Pour les curseurs INSENSITIVE et pilotés par jeux de clés, l'ensemble de résultats comprend au moins une ligne. Pour les curseurs dynamiques, l'ensemble de résultats peut être vide, ou contenir une ou plusieurs lignes. |
Le curseur affecté à cette variable est ouvert. Pour les curseurs INSENSITIVE et pilotés par jeux de clés, l'ensemble de résultats comprend au moins une ligne. Pour les curseurs dynamiques, l'ensemble de résultats peut être vide, ou contenir une ou plusieurs lignes. |
0 |
Le jeu de résultats du curseur est vide. 1 | Le curseur affecté à cette variable est ouvert mais l'ensemble de résultats est vide.* |
-1 |
Le curseur est fermé. | Le curseur affecté à cette variable est fermé. |
-2 |
Non applicable. | Présente l’une de ces possibilités : La procédure appelée précédemment n’a pas affecté de curseur à cette OUTPUT variable.La procédure précédemment affectée a affecté un curseur à cette OUTPUT variable, mais le curseur était dans un état fermé lorsque la procédure s’est terminée. C’est la raison pour laquelle le curseur est désaffecté et qu’il n’est pas retourné à la procédure d’appel.Aucun curseur n’est affecté à la variable de curseur déclarée. |
-3 |
Un curseur portant le nom spécifié n’existe pas. | Une variable de curseur portant le nom spécifié n’existe pas ou, s’il en existe un, aucun curseur n’est encore alloué à celui-ci. |
1 Curseurs dynamiques ne retournent jamais ce résultat.
Exemples
Cet exemple utilise la fonction CURSOR_STATUS
pour afficher l’état d’un curseur, après sa déclaration, après son ouverture et après sa fermeture.
CREATE TABLE #TMP (ii INT);
GO
INSERT INTO #TMP (ii) VALUES (1);
INSERT INTO #TMP (ii) VALUES (2);
INSERT INTO #TMP (ii) VALUES (3);
GO
-- Create a cursor
DECLARE cur CURSOR
FOR SELECT * FROM #TMP;
-- Display the status of the cursor before and after opening
-- and closing the cursor
SELECT CURSOR_STATUS('global', 'cur') AS 'After declare';
OPEN cur;
SELECT CURSOR_STATUS('global', 'cur') AS 'After Open';
CLOSE cur;
SELECT CURSOR_STATUS('global', 'cur') AS 'After Close';
-- Remove the cursor.
DEALLOCATE cur;
-- Drop the table.
DROP TABLE #TMP;
Voici le jeu de résultats.
After declare
---------------
-1
After Open
----------
1
After Close
-----------
-1