2014-09-25 163 views
0

我有兩個數據庫(A和B),兩者都是相同的,直到我搞砸了數據庫A的表T1中的一列...基本上設置所有在該列中記錄爲NULL。如何在數據庫A的T1中使用來自數據庫B的等效列中的正確數據更新該不正確的列?從數據庫表複製一列到另一個數據庫表中的另一列sql server

我的插入命令不起作用,因爲數據庫A中T1中有更多列不允許插入空值。

insert into A.dbo.finance (finishdate) 
select finishdate 
from B.dbo.finance 

我厭倦了做一個內部連接,但它說「多部分標識符不能綁定」。不幸的是,數據庫A中其他表中的數據已經改變,因此僅僅使用數據庫B不是一種選擇:-)

有人請協助嗎?

+1

爲什麼如果你想改變一列的值,你插入嗎?它不應該是一個更新? – 2014-09-25 10:19:17

+0

非常真實的Nadeem。更新命令爲我工作:-)謝謝。 – Nicki 2014-09-29 09:15:22

回答

2

如果ID是兩個表的id列,你應該加入他們的行列,並更新你想要的:

UPDATE A.dbo.finance 
SET finishdate = B.finishdate 
FROM A.dbo.finance A 
     JOIN B.dbo.finance B 
      ON A.ID = B.ID 
+0

非常感謝你Giannis做的訣竅:-)非常感謝 – Nicki 2014-09-29 09:14:18

0

數據庫B

Select finishdate into ##temp from dbo.finance B where 1 = 1 

數據庫

insert into dbo.finance(finishdate) 
    select * from ##temp t where NOT EXISTS 
(Select 1 from dbo.finance WHERE finishdate <> t.finishdate ) 
+0

非常感謝你的回覆Mohan – Nicki 2014-09-29 09:13:54

相關問題