从数据库表复制一列到另一个数据库表中的另一列sql server

问题描述:

我有两个数据库(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

如果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

数据库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