Nuta
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zalogować się lub zmienić katalogi.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
Dotyczy:SQL Server
Azure SQL Database
Azure SQL Managed Instance
Baza danych SQL w usłudze Microsoft Fabric
Dla danego parametru pokazuje, CURSOR_STATUS czy deklaracja kursora zwróciła kursor i zestaw wyników.
Transact-SQL konwencje składni
Składnia
CURSOR_STATUS
(
{ 'local' , 'cursor_name' }
| { 'global' , 'cursor_name' }
| { 'variable' , 'cursor_variable' }
)
Argumenty (w programowaniu)
"local"
Określa stałą wskazującą, że źródło kursora jest kursorem lokalnym.
"cursor_name"
Nazwa kursora. Nazwa kursora musi być zgodna z regułami identyfikatorów bazy danych.
"globalny"
Określa stałą wskazującą, że źródłem kursora jest kursor globalny.
"zmienna"
Określa stałą wskazującą, że źródłem kursora jest zmienna lokalna.
"cursor_variable"
Nazwa zmiennej kursora. Zmienna kursora musi być zdefiniowana przy użyciu typu danych kursora .
Typy zwracane
smallint
| Wartość zwracana | Nazwa kursora | Zmienna kursora |
|---|---|---|
1 |
Zestaw wyników kursora ma co najmniej jeden wiersz. W przypadku kursorów bez uwzględniania i zestawu zestaw wyników ma co najmniej jeden wiersz. W przypadku kursorów dynamicznych zestaw wyników może mieć zero, jeden lub więcej wierszy. |
Kursor przydzielony do tej zmiennej jest otwarty. W przypadku kursorów bez uwzględniania i zestawu zestaw wyników ma co najmniej jeden wiersz. W przypadku kursorów dynamicznych zestaw wyników może mieć zero, jeden lub więcej wierszy. |
0 |
Zestaw wyników kursora jest pusty. 1 | Kursor przydzielony do tej zmiennej jest otwarty, ale zestaw wyników jest zdecydowanie pusty.* |
-1 |
Kursor jest zamknięty. | Kursor przydzielony do tej zmiennej jest zamknięty. |
-2 |
Nie dotyczy. | Ma jedną z następujących możliwości: Wcześniej wywołana procedura nie przypisze kursora do tej OUTPUT zmiennej.Wcześniej przypisana procedura przypisała kursor do tej OUTPUT zmiennej, ale kursor był w stanie zamkniętym po zakończeniu procedury. W związku z tym kursor jest cofany i nie jest zwracany do procedury wywołującej.Żaden kursor nie jest przypisany do zadeklarowanej zmiennej kursora. |
-3 |
Kursor o określonej nazwie nie istnieje. | Zmienna kursora o określonej nazwie nie istnieje lub jeśli istnieje, nie zostanie jeszcze przydzielony kursor. |
1 Kursory dynamiczne nigdy nie zwracają tego wyniku.
Przykłady
W tym przykładzie użyto CURSOR_STATUS funkcji , aby wyświetlić stan kursora po jego deklaracji, po jej otworze i po zamknięciu.
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;
Oto zestaw wyników.
After declare
---------------
-1
After Open
----------
1
After Close
-----------
-1