В моделите на курсора на API на базата данни еднопосочният курсор се третира като отделен тип курсор.

SQL Server третира еднопосочността и превъртането като опции, които могат да бъдат приложени към статични, динамични и управлявани от набора ключове курсори.

И двата метода (Transact-SQL и API за курсори на база данни) никога не трябва да се използват в приложение едновременно.

След това приложение, което използва API на курсора, не може да изпълни оператор Transact-SQL DECLARE CURSOR за заявка за нов курсор Transact-SQL. Операторът DECLARE CURSOR може да се използва само ако всички атрибути на API курсори са зададени на стойностите им по подразбиране.

Ако не е заявен нито Transact-SQL, нито API курсор, SQL Server връща целия набор от резултати по подразбиране на приложението (това се нарича набор от резултати по подразбиране).

Всички курсори на SQL Server използват същия цикъл.

2. Изпълнете оператор Transact-SQL, за да попълните курсора. Отваряне на курсора, т.е. запълване с данни, които се съхраняват в многостепенна памет.

3. Вземете необходимите редове в курсора. Операцията за получаване на един или повече редове в курсора се нарича селекция. Правенето на поредица от селекции за придвижване на редове напред или назад се нарича превъртане.

4. Ако е необходимо, извършете операции по промяна (актуализиране или изтриване) на реда в текущата позиция на курсора.

5. Затворете курсора (след което той става недостъпен за потребителски програми).

6. Освобождаване на курсора, т.е. изтриване на курсора като обект, тъй като затварянето му не освобождава непременно паметта, свързана с него

Тези стъпки за обработка се изпълняват от следните оператори:

Инструкции ОТВОРЕНИпопълва набора от резултати.

Оператор FETCHвръща низ от него (етапи 3 и 4).

Инструкции БЛИЗОизчиства текущия набор от резултати, свързан с курсора.

Инструкции ОТМЕНЕТЕосвобождава ресурси, използвани от курсора.

Изявлението DECLARE CURSOR е разширено; следователно можете да посочите четири типа за курсори Transact-SQL. Тези курсори се различават по способността си да откриват промени в набора от резултати и в ресурсите, които консумират, като памет и пространство в tempdb.

Синтаксис

Синтаксис на SQL 92 за да зададете параметрите на курсора.

ДЕКЛАРИРАЙТЕ име_на курсора [НЕВЪЗМОЖЕН] [СКРОЛ] КУРСОР

Transact-SQL разширен синтаксис използва разширения на езика Transact-SQL, за да дефинира курсори, използвайки същите типове като тези, използвани в функциите на курсора в API на база данни, като ODBC и ADO.

ДЕКЛАРИРАЙТЕ име_на курсора КУРСОР [МЕСТЕН ​​| ГЛОБАЛНО]

[СТАТИЧЕН | КЛЮЧОВЕ | ДИНАМИЧЕСКИ | ПРЕВЪРТАНЕ НАПРЕД]

[ПРОЧЕТЕТЕ_ САМО | SCROLL_LOCKS | ОПТИМИСТИЧЕН]

[ЗА АКТУАЛИЗАЦИЯ [НА име_на колона [. н]]]