我认为以下查询中的数据没有返回。
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