2010-01-05 65 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

相關問題