Ескертпе
Бұл бетке кіру үшін қатынас шегін айқындау қажет. Жүйеге кіруді немесе каталогтарды өзгертуді байқап көруге болады.
Бұл бетке кіру үшін қатынас шегін айқындау қажет. Каталогтарды өзгертуді байқап көруге болады.
Применимо к:SQL Server
База данных
SQL AzureУправляемый экземпляр
SQL AzureБаза данных SQL в Microsoft Fabric
Для данного параметра функция CURSOR_STATUS сообщает, вернуло ли объявление курсора курсор и результирующий набор.
Соглашения о синтаксисе Transact-SQL
Синтаксис
CURSOR_STATUS
(
{ 'local' , 'cursor_name' }
| { 'global' , 'cursor_name' }
| { 'variable' , 'cursor_variable' }
)
Аргументы
"local"
Указывает константу, указывающую, что источник курсора является локальным курсором.
"cursor_name"
Имя курсора. Имя курсора должно соответствовать требованиям, предъявляемым к идентификаторам базы данных.
"global"
Указывает константу, указывающую, что источник курсора является глобальным курсором.
"переменная"
Задает константу, показывающую, что источник курсора — это локальная переменная.
"cursor_variable"
Имя переменной курсора. Переменная курсора должна быть определена с типом данных cursor.
Типы возвращаемых данных
смолинт
| Возвращаемое значение | Имя курсора | Переменная курсора |
|---|---|---|
1 |
Результирующий набор курсора включает как минимум одну строку. В случае статических и управляемых набором ключей курсоров результирующий набор включает как минимум одну строку. В случае динамических курсоров результирующий набор может включать одну или более строк или не включать их. |
Курсор, выделенный этой переменной, открыт. В случае статических и управляемых набором ключей курсоров результирующий набор включает как минимум одну строку. В случае динамических курсоров результирующий набор может включать одну или более строк или не включать их. |
0 |
Результирующий набор курсора пуст. 1 | Курсор, выделенный этой переменной, открыт, но результирующий набор пуст.* |
-1 |
Курсор закрыт. | Курсор, выделенный этой переменной, закрыт. |
-2 |
Неприменимо. | Возможен один из вариантов: Ранее вызываемая процедура не назначила курсор этой OUTPUT переменной.Ранее назначенная процедура назначила курсор этой OUTPUT переменной, но курсор был в закрытом состоянии после завершения процедуры. Таким образом, курсор освобождается и не возвращается вызвавшей процедуре.Объявленной переменной курсора курсор не назначен. |
-3 |
Курсор с указанным именем не существует. | Переменная курсора с указанным именем не существует или если она существует, курсор пока не выделяется. |
1 Динамические курсоры никогда не возвращают этот результат.
Примеры
В приведенном ниже примере функция CURSOR_STATUS используется для отображения состояния курсора после его объявления, открытия и закрытия.
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;
Вот результирующий набор.
After declare
---------------
-1
After Open
----------
1
After Close
-----------
-1