Заполните столбец из таблицы X значением из таблицы Y - PullRequest
1 голос
/ 16 марта 2010

Другой разработчик изменил все значения в столбце userid таблицы map. Мне нужно, чтобы они были изменены обратно, потому что userid также является ключом в таблице profiles. К счастью, по причинам, в которые не стоит вдаваться, map и profiles имеют общий общий столбец, employeeId.

Таким образом, я хотел бы взять все значения для userid, найденные в profiles, и перезаписать значения, найденные в userid соответствующей строке map.

Мой инстинкт состоит в том, чтобы сделать что-то вроде этого:

UPDATE map,profiles
SET map.userid = profiles.userid
WHERE map.employeeId = profiles.employeeId

Но SQLServer 2005 не заботится о наличии двух таблиц в предложении UPDATE.

Есть предложения?

Ответы [ 2 ]

6 голосов
/ 16 марта 2010

В обновлении может быть предложение FROM:

UPDATE m 
SET m.userid = profiles.userid
from map m
inner join profiles on m.employeeId = profiles.employeeId
3 голосов
/ 16 марта 2010

В синтаксисе T-SQL часть Обновление содержит то, что вы хотите обновить, а ОТ может содержать дополнительный источник (и) данных.

Попробуйте следующее

UPDATE map
SET map.userid = profiles.userid
FROM profiles
WHERE map.employeeId = profiles.employeeId

Обновление синтаксиса: http://msdn.microsoft.com/en-us/library/ms177523.aspx

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...