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