Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Microsoft SQL Server Новый топик    Ответить
 UPDATE запрос  [new]
alex7sasha
Member

Откуда:
Сообщений: 6
Добрый вечер всем! Я новичок в SQL, стоит задача по обновлению всех значении полей из таблицы2 в таблицу1 по условию, где ID равен ну например 100. То есть, запрос нашел ID=100 и обновил значения полей. Таблицы кстати находятся на разных БД.
Получается приблизительно такой запрос:

UPDATE BD1.dbo.Table1
SET ID=100
FROM BD2.dbo.Table2

По результату жалуется на одинаковые видимые имена. Подскажите пожалуйста, верен ли синтаксис (ткните носом, если можно)?
21 окт 18, 22:07    [21710500]     Ответить | Цитировать Сообщить модератору
 Re: UPDATE запрос  [new]
alex7sasha
Member

Откуда:
Сообщений: 6
Обновить значение таблицы, извините
21 окт 18, 22:12    [21710506]     Ответить | Цитировать Сообщить модератору
 Re: UPDATE запрос  [new]
Щукина Анна
Member

Откуда:
Сообщений: 1466
alex7sasha,

документацию принципиально игнорируете?
22 окт 18, 04:43    [21710627]     Ответить | Цитировать Сообщить модератору
 Re: UPDATE запрос  [new]
kashinmax78
Member

Откуда:
Сообщений: 1
Вашим запросом вы все в 100 обновите, а не только где во второй таблице 100, если я правильно вас понят, то так
UPDATE BD1.dbo.Table1
SET ID=t2.id, ID2=t2.ID2 ... и тд
FROM BD2.dbo.Table2 as t2
WHERE t2.ID=100
25 окт 18, 14:29    [21714892]     Ответить | Цитировать Сообщить модератору
 Re: UPDATE запрос  [new]
Andy_OLAP
Member

Откуда: я знаю, что Хапоэль Беэр-Шева - чемпион
Сообщений: 3151
alex7sasha
Добрый вечер всем! Я новичок в SQL, стоит задача по обновлению всех значении полей из таблицы2 в таблицу1 по условию, где ID равен ну например 100. То есть, запрос нашел ID=100 и обновил значения полей. Таблицы кстати находятся на разных БД.
Получается приблизительно такой запрос:

UPDATE BD1.dbo.Table1
SET ID=100
FROM BD2.dbo.Table2

По результату жалуется на одинаковые видимые имена. Подскажите пожалуйста, верен ли синтаксис (ткните носом, если можно)?


update t1
set column1 = t2.column1, column2 = t2.column2, ....

from BD1.dbo.Table1 t1 -- кошерный псевдоним, сюда будем записывать значения из таблицы2
inner join BD2.dbo.Table2 t2 on t1.ID = t2.ID -- если в таблице1 нужной строки нет, то значения в таблице1 не меняем
where t1.ID = 100 -- а вот здесь отбираем только одну нужную строку, потому что ID однозначно дает одну строку
-- но можем поставить фильтр where t1.ID in (100,101,102) или where t1.ID >= 100 and t1.ID <= 102 или еще как-нибудь как нужно
25 окт 18, 14:36    [21714909]     Ответить | Цитировать Сообщить модератору
 Re: UPDATE запрос  [new]
Andy_OLAP
Member

Откуда: я знаю, что Хапоэль Беэр-Шева - чемпион
Сообщений: 3151
Andy_OLAP,

"если в таблице1 нужной строки нет, то значения в таблице1 не меняем" - имеется в виду, что в таблице1 есть строка с ID, по которому нет строки с таким ID в таблице2.
25 окт 18, 14:38    [21714914]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить