我有两个数据库(A和B),两者都是相同的,直到我搞砸数据库A上的表T1中的一列...基本上将该列中的所有记录设置为NULL。如何使用数据库B中等效列中的正确数据更新数据库A中T1中的错误列?
我的插入命令不起作用,因为数据库A中的T1中有更多列,不允许插入空值。
insert into A.dbo.finance (finishdate)
select finishdate
from B.dbo.finance
我厌倦了做一个内部联接,但它说"多部分标识符无法绑定"。不幸的是,数据库A中其他表中的数据已经发生变化,因此仅使用数据库B不是一个选项: - )
有人可以帮忙吗?
答案 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 )