Заглавная страница Избранные статьи Случайная статья Познавательные статьи Новые добавления Обратная связь FAQ Написать работу КАТЕГОРИИ: ТОП 10 на сайте Приготовление дезинфицирующих растворов различной концентрацииТехника нижней прямой подачи мяча. Франко-прусская война (причины и последствия) Организация работы процедурного кабинета Смысловое и механическое запоминание, их место и роль в усвоении знаний Коммуникативные барьеры и пути их преодоления Обработка изделий медицинского назначения многократного применения Образцы текста публицистического стиля Четыре типа изменения баланса Задачи с ответами для Всероссийской олимпиады по праву
Мы поможем в написании ваших работ! ЗНАЕТЕ ЛИ ВЫ?
Влияние общества на человека
Приготовление дезинфицирующих растворов различной концентрации Практические работы по географии для 6 класса Организация работы процедурного кабинета Изменения в неживой природе осенью Уборка процедурного кабинета Сольфеджио. Все правила по сольфеджио Балочные системы. Определение реакций опор и моментов защемления |
Warning: Null value eliminated by aggregate or other set operation.Содержание книги
Поиск на нашем сайте Курсор содержит 6 строк. 3. Задание: выведите на экран содержимое курсора из задания 2. Перед тем, как CAST (@fmoney As varchar(12)) CAST (@intSum As varchar(l0)) 4. Проведём эксперимент. Создадим ключевой, динамический, последовательный и Итак, создадим таблицу publ: SELECT * INTO publ FROM publishers Новая таблица не обременена связями с другими таблицами, поэтому строки из нее можно безболезненно удалять. Для определения ключевого курсора, основанного на таблице publ, необходимо провести дополнительные действия. Хотя таблица publ и содержит столбец pub_id, значения в котором уникальны, сервер не будет использовать его автоматически. Поэтому создадим в таблице publ уникальный индекс IX_unique_publ, построенный на столбце pub_id: CREATE UNIQUE INDEX IX_unique_publ ON publ (pub_id) Посмотрите, какие данные содержит таблица publ: select * from publ Итак, у нас будет 4 курсора разных типов. Мы выберем с помощью каждого из курсоров первую строку, выполнив команду FETCH FIRST (кроме последовательного, который допускает только команду FETCH NEXT). Затем удалим строку таблицы publ, имеющую в столбе pub_id значение 0877. После этого попытаемся считать из каждого курсора следующую строку с помощью команды FETCH NEXT: BEGIN TRAN DECLARE stat_curs CURSOR STATIC FOR SELECT * FROM publ DECLARE keys_curs CURSOR KEYSET FOR SELECT * FROM publ DECLARE dyna_curs CURSOR DYNAMIC FOR SELECT * FROM publ DECLARE ffor_curs CURSOR FAST_FORWARD FOR SELECT * FROM publ OPEN stat_curs OPEN keys_curs OPEN dyna_curs OPEN ffor_curs FETCH FIRST FROM stat_curs FETCH FIRST FROM keys_curs FETCH FIRST FROM dyna_curs FETCH NEXT FROM ffor_curs PRINT 'Удаление строки из таблицы publ' DELETE FROM publ WHERE pub_id='0877' FETCH NEXT FROM stat_curs FETCH NEXT FROM keys_curs FETCH NEXT FROM dyna_curs FETCH NEXT FROM ffor_curs SELECT * FROM publ ROLLBACK TRAN SELECT * FROM publ Если курсор уже создан, необходимо закрыть и освободить курсор, например: Close stat_curs Deallocate stat_curs
5. Изменение исходных данных. Курсоры позволяют не только выбирать данные, но и изменять строки исходных таблиц. Идея использования курсора для изменения исходных данных состоит в том, что изменяется строка таблицы, соответствующая текущей строке курсора. Упрощенно синтаксис команды UPDATE, предназначенной для обновления таблиц посредством курсора, можно записать следующим образом: UPDATE table_name SET {column_name = {DEFAULT | NULL | expression}} [,...n] WHERE CURRENT OF cursor_name В качестве примера рассмотрим изменение значений в таблице publ, созданной в одном из предыдущих примеров. При этом будем использовать ключевой курсор. Для начала выведем все содержимое таблицы publ, создадим и откроем курсор, выберем из него две строки и выполним команду UPDATE. После этого вновь посмотрим содержимое таблицы publ с помощью запроса SELECT, а также выведем содержимое текущей строки курсора: BEGIN TRAN SELECT * FROM publ DECLARE keys_curs CURSOR KEYSET FOR SELECT * FROM publ FOR UPDATE OF city OPEN keys_curs FETCH FIRST FROM keys_curs FETCH NEXT FROM keys_curs UPDATE publ SET city = city + '#' WHERE CURRENT OF keys_curs --изменили только вторую строку SELECT * FROM publ FETCH RELATIVE 0 FROM keys_curs ROLLBACK TRAN Работа приведенного примера сводится к изменению второй строки таблицы publ. Точнее, будет изменено значение в столбце city, к которому в конец добавляется символ #. 6. Задание: выведите на экран содержимое курсора из задания 5, чтобы ко всем строкам таблицы был добавлен символ #.
|
||
|
Последнее изменение этой страницы: 2017-01-25; просмотров: 236; Нарушение авторского права страницы; Мы поможем в написании вашей работы! infopedia.su Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Обратная связь - 216.73.217.21 (0.006 с.) |