Обновлять записи только при совпадении идентификатора - PullRequest
1 голос
/ 06 января 2010

Как мне обновить данные в таблице в отдельной базе данных на основе записей в текущей базе данных?

Например, я хочу обновить поле «status» в базе данных с именем «database_old» значением, содержащимся в базе данных «database_new». Мои текущие данные существуют в базе данных «database_new». Я хочу обновлять записи в базе данных «database_old» только при совпадении поля record_id. Поля «status» и «record_id» существуют в таблице «products» в обеих базах данных. Как я уже сказал, поле «status» должно обновляться значением из «database_new», но обновляться только при совпадении record_id.

Это база данных MS SQL 2005.

Ответы [ 2 ]

3 голосов
/ 06 января 2010
update database_old.dbo.products
set status = new.status
from database_new.dbo.products new
where database_old.dbo.products.record_id = new.products.record_id
0 голосов
/ 06 января 2010

Если обе базы данных находятся на одном сервере, просто используйте имя из 3 частей Database.dbo.TableName. Пример:

update old
set old.status = new.status
from database_old.dbo.products old
inner join database_new.dbo.products new
on old.record_id = new.record_id

Если они находятся на разных серверах, вам нужно иметь связанный сервер, а затем использовать имя из 4 частей.

...