В этом учебном пособии вы узнаете, как использовать оператор UPDATE в SQL Server (Transact-SQL) с синтаксисом и примерами.
Описание
Оператор UPDATE SQL Server (Transact-SQL) используется для обновления существующих записей в таблице в базе данных SQL Server. Существует три синтаксиса для оператора UPDATE в зависимости от того, выполняете ли вы традиционное обновление или обновляете одну таблицу данными из другой таблицы.
Синтаксис
Синтаксис оператора UPDATE при обновлении одной таблицы в SQL Server (Transact-SQL):
SET column1 = expression1,
column2 = expression2,
...
[WHERE conditions];
Или
Синтаксис оператора UPDATE при обновлении одной таблицы данными из другой таблицы в SQL Server (Transact-SQL):
1 2 3 4 5 |
UPDATE table1 SET column1 = (SELECT expression1 FROM table2 WHERE conditions) [WHERE conditions]; |
Или
Синтаксис оператора SQL Server UPDATE при обновлении одной таблицы данными из другой таблицы:
1 2 3 4 5 6 |
UPDATE table1 SET table1.column = table2.expression1 FROM table1 INNER JOIN table2 ON (table1.column1 = table2.column1) [WHERE conditions]; |
Параметры или аргументы
column1, column2 - столбцы, которые вы хотите обновить.
expression1, expression2 - новые значения для назначения column1, column2. Таким образом, column1 присваивается значение expression1, column2 присваивается значение expression2 и т.д.
WHERE conditions - необязательный. Условия, которые должны выполняться для выполнения обновления.
Пример обновления одного столбеца
Рассмотрим очень простой пример запроса SQL Server UPDATE.
Например:
1 2 3 |
UPDATE employees SET last_name = 'Tomson' WHERE employee_id = 10; |
Этот пример SQL Server UPDATE обновит last_name в 'Tomson' в таблице employees, где employee_id = 10.
Пример обновления нескольких столбцов.
Рассмотрим пример UPDATE SQL Server, где вы можете обновить более одного столбца с помощью одного оператора UPDATE.
Например:
1 2 3 4 |
UPDATE employees SET first_name = 'Jon', employee_id = 12 WHERE last_name = 'Tomson'; |
Если вы хотите обновить несколько столбцов, вы можете сделать это, разделив столбцы запятыми.
Этот пример SQL Server UPDATE обновит first_name в 'Jon', а employee_id в 12, где last_name - 'Tomson'.
Пример обновления таблицы данными из другой таблицы.
Рассмотрим пример UPDATE, который показывает, как обновить таблицу данными из другой таблицы в SQL Server.
Например:
1 2 3 4 5 |
UPDATE employees SET first_name = (SELECT first_name FROM contacts WHERE contacts.last_name = employees.last_name) WHERE employee_id > 95; |
В этом примере будет обновляться только таблица employees для всех записей, где employee_id больше 95. Когда last_name из таблицы contacts совпадает с last_name из таблицы employee, значение first_name из таблицы contacts будет скопировано в поле first_name таблицы employees.
Вы можете переписать этот оператор UPDATE в SQL Server, используя второй синтаксис, чтобы обновить таблицу данными из другой таблицы.
Например:
1 2 3 4 5 6 |
UPDATE employees SET employees.first_name = contacts.first_name FROM employees INNER JOIN contacts ON (employees.last_name = contacts.last_name) WHERE employee_id > 95; |
Этот пример UPDATE будет выполнять те же обновления, что и предыдущий.