Nota
O acesso a esta página requer autorização. Pode tentar iniciar sessão ou alterar os diretórios.
O acesso a esta página requer autorização. Pode tentar alterar os diretórios.
Aplica-se a:SQL Server
Azure SQL Database
Azure SQL Managed Instance
Base de dados SQL no Microsoft Fabric
Para um determinado parâmetro, CURSOR_STATUS mostra se uma declaração de cursor retornou ou não um cursor e um conjunto de resultados.
Transact-SQL convenções de sintaxe
Sintaxe
CURSOR_STATUS
(
{ 'local' , 'cursor_name' }
| { 'global' , 'cursor_name' }
| { 'variable' , 'cursor_variable' }
)
Argumentos
'local'
Especifica uma constante que indica que a origem do cursor é um cursor local.
'cursor_name'
O nome do cursor. Um nome de cursor deve estar em conformidade com as regras de identificador de banco de dados.
'Global'
Especifica uma constante que indica que a origem do cursor é um cursor global.
'variável'
Especifica uma constante que indica que a origem do cursor é uma variável local.
'cursor_variable'
O nome da variável do cursor. Uma variável de cursor deve ser definida usando o tipo de dados do cursor .
Tipos de devolução
Smallint
| Valor de retorno | Nome do cursor | Variável do cursor |
|---|---|---|
1 |
O conjunto de resultados do cursor tem pelo menos uma linha. Para cursores insensíveis e de conjunto de teclas, o conjunto de resultados tem pelo menos uma linha. Para cursores dinâmicos, o conjunto de resultados pode ter zero, uma ou mais linhas. |
O cursor alocado a esta variável está aberto. Para cursores insensíveis e de conjunto de teclas, o conjunto de resultados tem pelo menos uma linha. Para cursores dinâmicos, o conjunto de resultados pode ter zero, uma ou mais linhas. |
0 |
O conjunto de resultados do cursor está vazio. 1 | O cursor alocado a esta variável está aberto, mas o conjunto de resultados está definitivamente vazio.* |
-1 |
O cursor está fechado. | O cursor alocado a esta variável é fechado. |
-2 |
Não aplicável. | Tem uma destas possibilidades: O procedimento anteriormente chamado não atribuía um cursor a essa OUTPUT variável.O procedimento atribuído anteriormente atribuiu um cursor a essa OUTPUT variável, mas o cursor estava em um estado fechado quando o procedimento foi concluído. Portanto, o cursor é deslocalizado e não retornado ao procedimento de chamada.Nenhum cursor é atribuído à variável de cursor declarada. |
-3 |
Um cursor com o nome especificado não existe. | Uma variável de cursor com o nome especificado não existe ou, se existir, nenhum cursor ainda está alocado a ela. |
1 Os cursores dinâmicos nunca devolvem este resultado.
Exemplos
Este exemplo usa a CURSOR_STATUS função para mostrar o status de um cursor, após sua declaração, depois que ele abre e depois que ele fecha.
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;
Aqui está o conjunto de resultados.
After declare
---------------
-1
After Open
----------
1
After Close
-----------
-1