0

次のような2つのテーブルがあります。

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

Table1(name, street, houseNo) と Table2(name, street houseNo) の内容をチェックするプロシージャを作成したいと思います。コンテンツが互いに等しい場合は、Table1.DeliveryID を Table2.DeliveryID に挿入する必要があります。

どうすればいいですか?

4

3 に答える 3

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 に答える
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 に答える
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 に答える