1
我有两个数据库,testFrom
和testTo
。他们的目的是从testFrom
中取出选择列的值,并覆盖testTo
中的那些相同列。两个数据库都处理同名的表格dbo.People
。这两个数据库没有相同的记录数,因此传输不会为1:1。因此,我正在处理一个查询,该查询更新存在的行的值,并为那些不存在的行插入剩余的数据。当它们不为空时更新列,当它们为空时插入
目前我的更新工作,但插入将使用空值而不是从testFrom
的值添加新行。我不确定我哪里错了,是否可以成为我插入的加入声明?
UPDATE to_p
SET to_p.DottedID = from_p.DottedID, to_p.Name = from_p.Name, to_p.Colour = from_p.Colour, to_p.Food = from_p.Food
FROM testFrom.dbo.people to_p left join testTo.dbo.People from_p on to_p.Name = from_p.Name
WHERE from_p.Name IS NOT NULL;
INSERT INTO testTo.dbo.People (to_p.DottedID, to_p.Name, to_p.Colour, to_p.Food)
SELECT from_p.DottedID, from_p.Name, from_p.Colour, from_p.Food
FROM testFrom.dbo.people to_p left join testTo.dbo.People from_p on to_p.Name = from_p.Name
WHERE from_p.Name IS NULL;
的输出如下
它说0行受到影响时,我建议你更改后执行 – BlueBarren
@BlueBarren,是听错了。如果有帮助,请参阅编辑答案。 – Rahul
是的,或多或少的作品谢谢。现在,我只是每个旧的条目仍然在那里,虽然 – BlueBarren