我目前有2张桌子
数据库1总计:
lcustomerid sbarcode dtreplicated
----------------------------------------
NULL 1 NULL
NULL 2 NULL
NULL 3 NULL
1353 4 12/6/15
数据库2表:
lcustomerid sbarcode
-------------------------
12353 1
15353 2
53332 3
1353 4
我想做的是让数据库1表看起来像这样:
lcustomerid sbarcode dtreplicated
----------------------------------------
12353 1 NULL
15353 2 NULL
53332 3 NULL
1353 4 12/6/15
如果我运行此查询 - 我可以将两个数据库之间的链接放在一起。
SELECT
Customers.lCustomerID, Customers.sBarcode, Web.sBarcode AS WebBarcode
FROM
Customers
RIGHT OUTER JOIN
database1.db1.dbo.customers AS Web ON Web.sBarcode = Customers.sBarcode
WHERE
(Web.lCustomerid IS NULL) AND (Web.dtReplicated = '1/1/1900')
如何根据条形码匹配的数据库2的结果更新数据库1中的lcustomerid。基于上面的查询,我将从数据库2运行查询(它被设置为链接服务器)。
答案 0 :(得分:1)
只需使用join
:
update c
set lcustomerid = cc.lcustomerid
from database1.db1.dbo.customers c join
Customers cc
on cc.barcode = c.barcode
where lcustomerid is null;
答案 1 :(得分:0)
直接从table2更新table1
UPDATE database1.db1.dbo.customers SET lcustomerid = cc.lcustomerid FROM Customers CC
WHERE cc.barcode = barcode AND lcustomerid is null;
答案 2 :(得分:0)
UPDATE db1 SET customer_id = a.customer_id
FROM
(
SELECT COALESCE(db1.customer_id, db2.lcustomerid)
AS customer_id, db1.sbarcode, db1.dtreplicated
FROM db1
LEFT OUTER JOIN db2 ON db1.sbarcode = db2.sbarcode
) a