Добавил:
rushevamar@mail.ru Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
BD_Laboratornyi_774_praktikum.doc
Скачиваний:
28
Добавлен:
17.06.2021
Размер:
921.09 Кб
Скачать

Раздел II. Обновление данных в таблицах и представлениях.

Синтаксис команды обновления данных в таблице или представлении (см. [1], стр. 1130):

UPDATE         { table_name WITH ( < table_hint_limited > [ ...n ] )          | view_name | rowset_function_limited }         SET         { column_name = { expression | DEFAULT | NULL }         | @variable = expression | @variable = column = expression } [ ,...n ]     { { [ FROM { < table_source > } [ ,...n ] ]    [ WHERE  < search_condition > ] }         | [ WHERE CURRENT OF { { [ GLOBAL ] cursor_name } | cursor_variable_name } ] }         [ OPTION ( < query_hint > [ ,...n ] ) ]

< table_source > ::=     table_name [ [ AS ] table_alias ] [ WITH ( < table_hint > [ ,...n ] ) ]     | view_name [ [ AS ] table_alias ]     | rowset_function [ [ AS ] table_alias ]     | derived_table [ AS ] table_alias [ ( column_alias [ ,...n ] ) ]     | < joined_table >

< joined_table > ::=     < table_source > < join_type > < table_source > ON < search_condition >     | < table_source > CROSS JOIN < table_source >     | < joined_table >

< join_type > ::=     [ INNER | { { LEFT | RIGHT | FULL } [ OUTER ] } ]     [ < join_hint > ]     JOIN

< table_hint_limited > ::=     {    FASTFIRSTROW         | HOLDLOCK         | PAGLOCK         | READCOMMITTED         | REPEATABLEREAD         | ROWLOCK         | SERIALIZABLE         | TABLOCK         | TABLOCKX         | UPDLOCK     }

< table_hint > ::=     {    INDEX ( index_val [ ,...n ] )         | FASTFIRSTROW         | HOLDLOCK         | NOLOCK         | PAGLOCK         | READCOMMITTED         | READPAST         | READUNCOMMITTED         | REPEATABLEREAD         | ROWLOCK         | SERIALIZABLE         | TABLOCK         | TABLOCKX         | UPDLOCK     }

< query_hint > ::=     {    { HASH | ORDER } GROUP         | { CONCAT | HASH | MERGE } UNION         | {LOOP | MERGE | HASH } JOIN         | FAST number_rows         | FORCE ORDER         | MAXDOP         | ROBUST PLAN         | KEEP PLAN     }

Например, в таблице Клиент можно заменить все значения NULL в столбце КодРегиона на значение 301 с помощью следующей команды:

UPDATE Клиент SET КодРегиона = 301 WHERE КодРегиона IS NULL

Раздел III. Удаление данных из таблиц и представлений.

Синтаксис команды удаления данных из таблицы или представления (см. [1], стр. 1134):

DELETE     [ FROM ] { table_name WITH ( < table_hint_limited > [ ...n ] )          | view_name | rowset_function_limited }         [ FROM { < table_source > } [ ,...n ] ]

    [ WHERE         { < search_condition >         | { [ CURRENT OF                 { { [ GLOBAL ] cursor_name }                     | cursor_variable_name                 }             ] }         }     ]     [ OPTION ( < query_hint > [ ,...n ] ) ]

< table_source > ::=     table_name [ [ AS ] table_alias ] [ WITH ( < table_hint > [ ,...n ] ) ]     | view_name [ [ AS ] table_alias ]     | rowset_function [ [ AS ] table_alias ]     | derived_table [ AS ] table_alias [ ( column_alias [ ,...n ] ) ]     | < joined_table >

< joined_table > ::=     < table_source > < join_type > < table_source > ON < search_condition >     | < table_source > CROSS JOIN < table_source >     | < joined_table >

< join_type > ::=     [ INNER | { { LEFT | RIGHT | FULL } [OUTER] } ]     [ < join_hint > ]     JOIN

< table_hint_limited > ::=     { FASTFIRSTROW         | HOLDLOCK         | PAGLOCK         | READCOMMITTED         | REPEATABLEREAD         | ROWLOCK         | SERIALIZABLE         | TABLOCK         | TABLOCKX         | UPDLOCK     }

< table_hint > ::=     { INDEX ( index_val [ ,...n ] )         | FASTFIRSTROW         | HOLDLOCK         | NOLOCK         | PAGLOCK         | READCOMMITTED         | READPAST         | READUNCOMMITTED         | REPEATABLEREAD         | ROWLOCK         | SERIALIZABLE         | TABLOCK         | TABLOCKX         | UPDLOCK     }

< query_hint > ::=     { { HASH | ORDER } GROUP         | { CONCAT | HASH | MERGE } UNION         | FAST number_rows         | FORCE ORDER         | MAXDOP         | ROBUST PLAN         | KEEP PLAN     }

Например, в таблице Заказ можно удалить все строки, в которых значение поля СрокПоставки не относится к текущему году, следующим образом:

SET DATEFORMAT dmy -- задаем привычный формат даты: день.месяц.год

DELETE FROM Заказ WHERE СрокПоставки < '01.01.2013' GO