2010-01-05 66 views
1

如何根据当前数据库中的记录更新单独数据库中表中的数据?仅在ID匹配时更新记录

例如,我想用包含在数据库“database_new”中的值更新数据库中名为“database_old”的字段“status”。我目前的数据存在于数据库“database_new”中。我只想在record_id字段匹配时更新“database_old”数据库中的记录。两个数据库的“产品”表中都存在“status”和“record_id”字段。正如我所说的,字段“status”应该更新为“database_new”的值,但只有在record_id匹配时才会更新。

这是一个MS SQL 2005数据库。

+0

这两个数据库都在同一个SQL Server实例上吗?可能在同一台服务器上的不同实例上,但更有可能是不同服务器上的不同实例... – 2010-01-05 23:22:51

+0

这两个数据库都在同一台服务器上 – jeff 2010-01-05 23:26:48

+0

@Jeff:您可以在服务器上安装多个SQL Server实例。只要说 – 2010-01-05 23:28:15

回答

0

如果两个数据库都在同一台服务器上,则只需使用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部分名称。

3
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 
+1

+1。请记住,需要链接的服务器在不同的数据库实例上工作 – 2010-01-05 23:24:46

相关问题