我有两个看起来像这样的表:
Table1(ID, name, street, houseNo, DeliveryID)和Table2(ID, name street houseNo, DeliveryID)
我想创建一个检查 Table1(name, street, houseNo) 和 Table2(name, street houseNo) 内容的过程。如果内容彼此相等,则应将 Table1.DeliveryID 插入 Table2.DelvieryID。
我该怎么做?
我有两个看起来像这样的表:
Table1(ID, name, street, houseNo, DeliveryID)和Table2(ID, name street houseNo, DeliveryID)
我想创建一个检查 Table1(name, street, houseNo) 和 Table2(name, street houseNo) 内容的过程。如果内容彼此相等,则应将 Table1.DeliveryID 插入 Table2.DelvieryID。
我该怎么做?
请尝试使用内部联接更新(带有内部联接的 SQL Server 更新):
UPDATE Table2
SET Table2.DelvieryID = Table1.DelvieryID
FROM Table2, Table1
WHERE
Table2.name = Table1.name AND
Table2.street = Table1.street AND
Table2.houseNo = Table1.houseNo
要考虑 NULL 值,请尝试
UPDATE Table2
SET Table2.DelvieryID = Table1.DelvieryID
FROM Table2, Table1
WHERE
ISNULL(Table2.name, '') = ISNULL(Table1.name, '') AND
ISNULL(Table2.street, '') = ISNULL(Table1.street, '') AND
ISNULL(Table2.houseNo, '') = ISNULL(Table1.houseNo, '')
UPDATE Table2
SET Table2.DelvieryID = Table1.DelvieryID
FROM Table1 t1, Table2 t2
WHERE CHECKSUM(t1.name,t1.street,t1.houseNo)=CHECKSUM(t2.name,t2.street,t2.houseNo)
简单的连接将起作用..
UPDATE tab2
SET tab2.DelvieryID = tab1.DelvieryID
FROM Table2 tab2, Table1 tab1
WHERE
tab2.name = tab1.name AND
tab2.street = tab1.street AND
tab2.houseNo = tab1.houseNo