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

时间:2014-09-25 10:14:39

标签: sql sql-server database

我有两个数据库(A和B),两者都是相同的,直到我搞砸数据库A上的表T1中的一列...基本上将该列中的所有记录设置为NULL。如何使用数据库B中等效列中的正确数据更新数据库A中T1中的错误列?

我的插入命令不起作用,因为数据库A中的T1中有更多列,不允许插入空值。

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

我厌倦了做一个内部联接,但它说"多部分标识符无法绑定"。不幸的是,数据库A中其他表中的数据已经发生变化,因此仅使用数据库B不是一个选项: - )

有人可以帮忙吗?

2 个答案:

答案 0 :(得分: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

答案 1 :(得分:0)

数据库B

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

DataBase A

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