Observação
O acesso a essa página exige autorização. Você pode tentar entrar ou alterar diretórios.
O acesso a essa página exige autorização. Você pode tentar alterar os diretórios.
Aplica-se a:SQL Server
Banco de Dados SQL do Azure
Instância Gerenciada de SQL do Azure
Para determinado parâmetro, CURSOR_STATUS
mostra se uma declaração de cursor retornou ou não um cursor e conjunto de resultados.
Convenções de sintaxe de Transact-SQL
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 do identificador do banco de dados.
'global'
Especifica uma constante que indica que a origem do cursor é um cursor global.
'variável'
Especifica uma constante indicando que a fonte do cursor é uma variável local.
'cursor_variable'
É o nome da variável de cursor. Uma variável de cursor deve ser definida usando o tipo de dados cursor.
Tipos de retorno
smallint
Valor retornado | Nome do cursor | Variável de cursor |
---|---|---|
1 |
O conjunto de resultados do cursor tem, ao menos, uma linha. Para cursores insensitive e keyset, o conjunto de resultados terá ao 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 insensitive e keyset, o conjunto de resultados terá ao 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 está fechado. |
-2 |
Não aplicável. | Tem uma destas possibilidades: O procedimento chamado anteriormente não atribuiu 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 é desalocado, 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 será alocado para ele. |
1 Os cursores dinâmicos nunca retornam esse resultado.
Exemplos
Este exemplo usa a função CURSOR_STATUS
para mostrar o status de um cursor, após sua declaração, depois que ele é aberto e depois que é fechado.
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;
Veja a seguir o conjunto de resultados.
After declare
---------------
-1
After Open
----------
1
After Close
-----------
-1