0

我有两个看起来像这样的表:

Table1(ID, name, street, houseNo, DeliveryID)Table2(ID, name street houseNo, DeliveryID)

我想创建一个检查 Table1(name, street, houseNo) 和 Table2(name, street houseNo) 内容的过程。如果内容彼此相等,则应将 Table1.DeliveryID 插入 Table2.DelvieryID。

我该怎么做?

4

3 回答 3

3

请尝试使用内部联接更新(带有内部联接的 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, '') 
于 2013-04-24T06:02:21.423 回答
3
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)
于 2013-04-24T06:10:38.530 回答
2

简单的连接将起作用..

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
于 2013-04-24T06:16:09.550 回答