Главная

Популярная публикация

Научная публикация

Случайная публикация

Обратная связь

ТОР 5 статей:

Методические подходы к анализу финансового состояния предприятия

Проблема периодизации русской литературы ХХ века. Краткая характеристика второй половины ХХ века

Ценовые и неценовые факторы

Характеристика шлифовальных кругов и ее маркировка

Служебные части речи. Предлог. Союз. Частицы

КАТЕГОРИИ:






rowset_function_limited




}

SET

{ column_name = { expression | DEFAULT | NULL }

| @variable = expression

I @variable = column = expression } [,...n ]

{ { [ FROM { <table_source> } [....n ] ]

WHERE CURRENT OF

{ { [ GLOBAL ] cursor_name } | cursor_variable_name }

] }

[ OPTION (<query_hint> [....n ]) ]

Принципиальное отличие между стандартным синтаксисом команды UPDATE и синтаксисом обнов­ления данных с помощью курсора состоит в методе использования раздела WHERE. Если при стандартном обновлении данных раздел WHERE содержит логическое выражение, необходимое для принятия решения о том, будет обновляться стро­ка таблицы или нет, то при работе с курсорами раздел WHERE содержит параметр CURRENT OF, после которого указывается имя курсора.

Упрощенно синтаксис команды UPDATE, предназначенной для обновления таблиц посредством курсора, можно записать следующим образом:

UPDATE table_name SET {column_name = {DEFAULT | NULL | expression}} [,...n] WHERE CURRENT OF cursor_name

Имя таблицы, в которой будет выполняться изменение, указывается с помощью аргумента table_name. Отметим, что это должна быть та же таблица, на которую ссылается запрос SELECT. За одну операцию может быть изменено несколько столб­цов таблицы. Однако если при создании курсора было наложено ограничение на список изменяемых строк, то разрешается указывать только те столбцы, кото­рые идентифицируются параметром FOR UPDATE OF команды DECLARE CURSOR.

Имя столбца, значение в котором необходимо изменить, задается с помощью ар­гумента column_name. Столбцу можно присвоить значение по умолчанию, указав ключевое слово DEFAULT. Для присвоения столбцу значения NULL требуется клю­чевое слово NULL. Для присвоения столбцу произвольного значения необходимо указать после знака = соответствующее выражение. Аргумент cursor_name опре­деляет имя курсора, который будет определять изменяемую строку. В принципе для изменения одной и той же таблицы можно использовать разные курсоры.

Таким образом, если ваш курсор модифицируемый, т.е. описан как FOR UPDATE, изменение исходных значений во множестве курсора выполняется достаточно просто. Модификация через курсор осуществляется через фразу WHERE. Это называется позиционное обновление:

UPDATE таблица_или_представление

SET список_для_модификации

WHERE CURRENT OF курсор_или_переменная

Transact-SQL также поддерживает позиционное удаление, которое имеет следующую форму записи:

DELETE таблица_или_представление

WHERE CURRENT OF курсор_или_переменная

 

Мониторинг курсоров Transact-SQL

 

В Transact-SQL существует две глобальные переменные и функция, которые помогают контролировать работу и состояние вашего курсора. Переменная @@CURSOR_ROWS возвращает количество строк во множестве последнего курсора. Переменная @@FETCH_STATUS возвращает информацию о выполнении последней команды FETCH.

Функция CURSOR_STATUS (тип, курсор или переменная) возвращает значение о состоянии курсора. Более подробную информацию см. в документации по SQL Server.

 






Не нашли, что искали? Воспользуйтесь поиском:

vikidalka.ru - 2015-2024 год. Все права принадлежат их авторам! Нарушение авторских прав | Нарушение персональных данных