sp_cursor_list (Transact-SQL)
Область применения: SQL Server
Представляет атрибуты серверных курсоров, открытых на данный момент для соединения.
Соглашения о синтаксисе Transact-SQL
Синтаксис
sp_cursor_list
[ @cursor_return = ] cursor_return OUTPUT
, [ @cursor_scope = ] cursor_scope
[ ; ]
Аргументы
[ @cursor_return = ] cursor_return OUTPUT
Имя объявленной переменной курсора. @cursor_return — это параметр OUTPUT типа CURSOR. Этот аргумент является динамическим, прокручиваемым и предназначенным только для чтения.
[ @cursor_scope = ] cursor_scope
Определяет, какие уровни курсоров включаются в отчет. @cursor_scope является int, без значения по умолчанию и может быть одним из этих значений.
значение | Описание |
---|---|
1 |
Представить все локальные курсоры. |
2 |
Представить все глобальные курсоры. |
3 |
Представить как локальные, так и глобальные курсоры. |
Значения кода возврата
Нет.
Возвращенные курсоры
sp_cursor_list
возвращает отчет как выходной параметр курсора Transact-SQL, а не в результирующем наборе. Это позволяет пакетам Transact-SQL, хранимым процедурам и триггерам работать с выходными данными по одной строке одновременно. Это также означает, что процедура не может вызываться непосредственно из функций API базы данных. Выходной параметр курсора должен быть привязан к переменной программы, но API базы данных не поддерживают параметры курсора привязки или переменные.
Это формат курсора, возвращаемого sp_cursor_list
. Формат курсора совпадает с форматом sp_describe_cursor
, возвращаемым .
Замечания
sp_cursor_list
создает список текущих курсоров сервера, открытых подключением, и описывает атрибуты, глобальные для каждого курсора, такие как возможность прокрутки и обновляемость курсора. Курсоры, перечисленные в sp_cursor_list
списке, включают:
Курсоры Transact-SQL Server.
Курсоры сервера API, открытые приложением ODBC, которое затем вызывается
SQLSetCursorName
для имени курсора.
Используйте sp_describe_cursor_columns
для описания атрибутов результирующий набор, возвращаемый курсором. Используется sp_describe_cursor_tables
для отчета базовых таблиц, на которые ссылается курсор. sp_describe_cursor
сообщает те же сведения, что sp_cursor_list
и только для указанного курсора.
Разрешения
Разрешения на выполнение по умолчанию принадлежат роли public .
Примеры
В следующем примере открывается глобальный курсор и используется процедура sp_cursor_list
для получения отчета об атрибутах курсора.
USE AdventureWorks2022;
GO
-- Declare and open a keyset-driven cursor.
DECLARE abc CURSOR KEYSET
FOR
SELECT LastName
FROM Person.Person
WHERE LastName LIKE 'S%';
OPEN abc;
-- Declare a cursor variable to hold the cursor output variable
-- from sp_cursor_list.
DECLARE @Report CURSOR;
-- Execute sp_cursor_list into the cursor variable.
EXEC master.dbo.sp_cursor_list
@cursor_return = @Report OUTPUT,
@cursor_scope = 2;
-- Fetch all the rows from the sp_cursor_list output cursor.
FETCH NEXT from @Report;
WHILE (@@FETCH_STATUS <> -1)
BEGIN
FETCH NEXT from @Report;
END
-- Close and deallocate the cursor from sp_cursor_list.
CLOSE @Report;
DEALLOCATE @Report;
GO
-- Close and deallocate the original cursor.
CLOSE abc;
DEALLOCATE abc;
GO