Примечание
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Область применения: SQL Server
База данных SQL Azure Управляемый экземпляр SQL Azure
Для данного параметра функция 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