Ескертпе
Бұл бетке кіру үшін қатынас шегін айқындау қажет. Жүйеге кіруді немесе каталогтарды өзгертуді байқап көруге болады.
Бұл бетке кіру үшін қатынас шегін айқындау қажет. Каталогтарды өзгертуді байқап көруге болады.
Применимо к:SQL Server
База данных
SQL AzureУправляемый экземпляр
SQL AzureБаза данных SQL в Microsoft Fabric
Открывает серверный курсор языка Transact-SQL и заполняет его с помощью инструкции языка Transact-SQL, определенной в инструкции DECLARE CURSOR или SET cursor_variable.
Соглашения о синтаксисе Transact-SQL
Syntax
OPEN { { [ GLOBAL ] cursor_name } | cursor_variable_name }
Arguments
GLOBAL
Указывает, что аргумент cursor_name ссылается на глобальный курсор.
cursor_name
Имя объявленного курсора. Когда имеется как глобальный, так и локальный курсор с именем cursor_name, то cursor_name относится к глобальному курсору, если задано GLOBAL% в противном случае cursor_name относится к локальному курсору.
cursor_variable_name
Имя переменной курсора, которая ссылается на курсор.
Remarks
Если курсор объявлен с параметром INSENSITIVE или STATIC, инструкция OPEN создает временную таблицу для хранения результирующего набора. Сбой OPEN, если размер любой строки в результирующем наборе превышает максимальный размер строки для таблиц SQL Server. Если курсор объявлен с параметром KEYSET, инструкция OPEN создает временную таблицу для хранения набора ключей. Временные таблицы хранятся в базе данных tempdb.
После открытия курсора используйте функцию @@CURSOR_ROWS для получения количества соответствующих строк в последнем открытом курсоре.
Note
SQL Server не поддерживает асинхронное создание управляемых набором ключей или статических курсоров Transact-SQL. Операции курсора Transact-SQL, такие как OPEN или FETCH, пакетные, поэтому не требуется асинхронное создание курсоров Transact-SQL. SQL Server продолжает поддерживать асинхронные управляемые набором ключей или статические курсоры интерфейса программирования приложений (API), где низкая задержка OPEN является проблемой из-за обхода клиента для каждой операции курсора.
Examples
В следующем примере открывается курсор и выбираются все его строки:
DECLARE Employee_Cursor CURSOR FOR
SELECT LastName, FirstName
FROM AdventureWorks2022.HumanResources.vEmployee
WHERE LastName like 'B%';
OPEN Employee_Cursor;
FETCH NEXT FROM Employee_Cursor;
WHILE @@FETCH_STATUS = 0
BEGIN
FETCH NEXT FROM Employee_Cursor
END;
CLOSE Employee_Cursor;
DEALLOCATE Employee_Cursor;
См. также
CLOSE (Transact-SQL)
@@CURSOR_ROWS (Transact-SQL)
DEALLOCATE (Transact-SQL)
ОБЪЯВЛЕНИЕ КУРСОРА (Transact-SQL)
FETCH (Transact-SQL)