MS SQL-Server 2000. Сивохин А.В. - 65 стр.

UptoLike

Составители: 

Для открытия курсора используется команда
OPEN {{[GLOBAL] Имя курсора}\Имя переменной}.
Для выборки данных необходимо применять команду
FETCH [[NEXT\PRIOR\FIRST\LAST\ABSOLUTE {n\@nvar}\
RELATIVE {n\@nvar}
]
FROM
]
{{[GLOBAL] Имя курсора}\Имя переменной}
[]INTO @ Имя переменной [,…n]]
Команды UPDATE, DELETE, CLOSE и DEALLOCATE позволят соответственно
произвести изменение данных, удаление данных, закрытие и освобождение курсора.
Задание 1. Создать курсор curs для таблицы authors базы данных Pubs, выполнил
следующие действия:
1. Создание курсора:
DECLARE curs cursor
GLOBAL SCROLL KEYSET TYPE_WARNING
FOR SELECT au_lname, au_fname, phone, title,
price, advance, sales = ytd_sales
FROM titleauthor INNER JOIN authors
ON titleauthor. au_id = authors. au_id
INNER JOIN titles
ON titleauthor. title_id = titles. titles_id
WHERE authors. state <> ‘CA’
FOR UPDATE.
2. Открытие курсора:
OPEN curs
3. Выборка данных:
DECLARE @@Str1 char (5),
@@VFName varchar (20),
@@VLName varchar (40),
@@VPhone char (12),
@@ VTitle varchar (80),
@@VPrice money,
@@VAdrance money,
@@VSales int,
@@Count1 timyint,
@@Var1 money
SET @@Count = 1
SET @@Var1 = 0
WHILE @@Count1 <@@CURSOR_ROWS
BEGIN
IF @@Count = 1
FETCH ABSOLUTE 1 FROM CURS INTO @@VFName,
@@VLName, @@VPhone, @@VTitle, @@VPrice,
@@VAdrance, @@VSales
ELSE
       Для открытия курсора используется команда
       OPEN {{[GLOBAL] Имя курсора}\Имя переменной}.

       Для выборки данных необходимо применять команду
       FETCH [[NEXT\PRIOR\FIRST\LAST\ABSOLUTE {n\@nvar}\
                  RELATIVE {n\@nvar}
                ]
                FROM
              ]
              {{[GLOBAL] Имя курсора}\Имя переменной}
              []INTO @ Имя переменной [,…n]]

        Команды UPDATE, DELETE, CLOSE и DEALLOCATE позволят соответственно
произвести изменение данных, удаление данных, закрытие и освобождение курсора.

       Задание 1. Создать курсор curs для таблицы authors базы данных Pubs, выполнил
следующие действия:

       1. Создание курсора:
            DECLARE curs cursor
            GLOBAL SCROLL KEYSET TYPE_WARNING
            FOR SELECT au_lname, au_fname, phone, title,
                            price, advance, sales = ytd_sales
                    FROM titleauthor INNER JOIN authors
                         ON titleauthor. au_id = authors. au_id
                         INNER JOIN titles
                         ON titleauthor. title_id = titles. titles_id
                    WHERE authors. state <> ‘CA’
             FOR UPDATE.

       2. Открытие курсора:
            OPEN curs

       3. Выборка данных:
            DECLARE @@Str1 char (5),
                        @@VFName varchar (20),
                        @@VLName varchar (40),
                        @@VPhone char (12),
                        @@ VTitle varchar (80),
                        @@VPrice money,
                      @@VAdrance money,
                        @@VSales int,
                        @@Count1 timyint,
                        @@Var1 money
            SET @@Count = 1
            SET @@Var1 = 0
            WHILE @@Count1 <@@CURSOR_ROWS
               BEGIN
                  IF @@Count = 1
                    FETCH ABSOLUTE 1 FROM CURS INTO @@VFName,
                           @@VLName, @@VPhone, @@VTitle, @@VPrice,
                           @@VAdrance, @@VSales
                  ELSE