-1

私はこれまでにこのコードを持っています:

DECLARE @AddressIDS TABLE
(
    AddressID int
)

INSERT INTO Address(Street1, City, StateCode, ZipCode)
OUTPUT inserted.AddressID INTO @AddressIDS
SELECT Street1, City, StateCode, ZipCode
    FROM Contact

ここで、ID をテーブルの@AddressIDS後ろに配置する必要がAddressIDありContactます。

これは、私がTSQLでやろうとしていることをよりよく説明しています:

ここに画像の説明を入力

4

1 に答える 1

0

Street1 + City + StateCode + ZipCode が一意である、または複数の連絡先が同じ AddressID を共有できると仮定すると、中間ステップで AddressID 値を調べる必要はありません。Address への挿入を実行するだけで、次のことができます。

UPDATE c 
  SET AddressID = a.AddressID
  FROM dbo.Contact AS c
  INNER JOIN dbo.Address AS a
  ON c.Street1 = a.Street1
  AND c.City = a.City
  AND c.StateCode = a.StateCode 
  AND c.ZipCode = a.ZipCode;
于 2012-07-05T18:58:09.167 に答える