我認爲以下查詢中的數據沒有返回。
SELECT * FROM customers
Where customers.Remarks = 'update'
如果數據返回時,將更新完成
順便說一句,有查詢一個邏輯錯誤。您不指定要從remarks_stg
表中記錄哪個記錄。
您需要指定where條件中兩個表之間的關係。
Update Customers
Set customers.Remarks = remarks_stg.remarks
From
(Select remarks, YourRelationshipColumn from remarks_stg) remarks_stg
Where
Customers.Remarks = 'updateme' AND
Customers.YourRelationshipColumn = Remarks_Stg.YourRelationshipColumn
如果沒有指定的關係,在remarks_stg
表中的第一條記錄將被檢索。
更新
可以使用ROW_NUMBER()
做到這一點。您應該從Customer
表中編寫一個唯一列。
UPDATE Customers
SET Remarks = RESULT.remarks
FROM
(
SELECT A.CustomerID, B.remarks
FROM
(SELECT ROW_NUMBER() OVER (ORDER BY (SELECT NULL)) RowId, * FROM Customers) A INNER JOIN
(SELECT ROW_NUMBER() OVER (ORDER BY (SELECT NULL)) RowId, * FROM remarks_stg) B ON A.RowId = B.RowId
) RESULT
WHERE
Customers.CustomerID = RESULT.CustomerID
注意:兩個表之間的關係必須是。如果不是,你必須改變結構。
來源
2017-03-16 06:45:24
Cer
備註表和客戶表之間的關係是什麼? – Shruti
請顯示示例數據。 – Cer
@Shruti。沒有關係 – Bodhi