在 MS SQL 中,我正在这样做——我认为它工作正常,但想检查一下。
UPDATE BillingInvoice
SET CustomerId = Customer.CustomerId
FROM Customer
WHERE BillingInvoice.CustomerId = Customer.CustomerNum
AND BillingInvoice.CreatedBy = 222
这是从旧数据库的迁移,我们首先将旧的客户编号转储到CustomerId
中,然后加入客户表,并获取客户表的 PK,然后最后将该 PK 放回CustomerId
。它似乎确实有效,但想检查 SQL 是否正确处理它。
您可以使用 OUTPUT 子句查看进行了哪些更改:
或者,您可以将 OUTPUT 子句的结果放入表(临时或表变量)中进行查询
我使用这种技术:
以下是 AdventureWorks2019 的结果: