Sql 仅在ID匹配时更新记录

Sql 仅在ID匹配时更新记录,sql,sql-server,sql-server-2005,sql-update,Sql,Sql Server,Sql Server 2005,Sql Update,如何根据当前数据库中的记录更新单独数据库中表中的数据 例如,我想用数据库“database\u new”中包含的值更新数据库中名为“database\u old”的字段“status”。我的当前数据存在于数据库“database_new”中。我只想在记录id字段匹配时更新“database_old”数据库中的记录。“status”和“record_id”字段存在于两个数据库的表“products”中。正如我所说,“status”字段应该用“database\u new”中的值更新,但只有在记录i

如何根据当前数据库中的记录更新单独数据库中表中的数据

例如,我想用数据库“database\u new”中包含的值更新数据库中名为“database\u old”的字段“status”。我的当前数据存在于数据库“database_new”中。我只想在记录id字段匹配时更新“database_old”数据库中的记录。“status”和“record_id”字段存在于两个数据库的表“products”中。正如我所说,“status”字段应该用“database\u new”中的值更新,但只有在记录id匹配时才更新


这是一个MS SQL 2005数据库。

如果两个数据库位于同一台服务器上,只需使用3部分名称database.dbo.TableName即可。例如:

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
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部分组成的名称。

这两个数据库是否位于同一个SQL server实例上?在同一台服务器上的不同实例上是合理的,但在不同的服务器上更可能是不同的实例…两个数据库都在同一台服务器上server@Jeff:您可以在服务器上安装多个SQL Server实例。只是说这两个数据库都在同一台服务器上,都是SQL+1的同一个实例。记住,这需要链接服务器在不同的数据库实例上工作