1

別のテーブルを指すように変更する必要がある別のテーブルに関連するキーを持つテーブルがあります。

テーブル Aは編集中のテーブルです。 Id を移動して、テーブル B Oldからテーブル B Newにポイントします。

既存のテーブルのスキーマを編集できません。

前のテーブル A (スキーマを編集できません)

Unique_Id  TableB_Id
1          10
2          11
3          11
4          12

表 A 後

Unique_Id  TableB_Id
1          12
2          13
3          13
4          13

私が持っている場所(現時点ではスプレッドシートにありますが)このマッピング

Old_Id     New_Id
10         12
11         13
12         13

明らかに、列が と表示されるため、、、 で個別10に置き換えることはできません。1211131213TableB_Id13, 13, 13, 13

うまくいけば、それは理にかなっています。何か案は?

4

2 に答える 2

1

Mappingスプレッドシートの内容で呼び出されるテーブルを作成します。

UPDATE  a
SET     TableB_Id = m.New_Id
FROM    TableA a
        INNER JOIN
                Mapping m
                ON a.TableB_Id = m.Old_ID
于 2013-08-01T16:05:41.343 に答える
0

明らかに、10 を 12 に、11 を 13 に、12 を 13 に個別に置き換えることはできません。これは、TableB_Id 列が 13、13、13、13 と読み取られるためです。

なぜだめですか?Unique_ID だけで更新すると、一度に 1 行だけ更新されます。

これはうまくいきませんか:

-- Iterate over each row in excel file
Update TableA
Set TableB_Id = New_ID
Where Unique_ID = [new field to add to excel table corresponding to the unique_id]
于 2013-08-01T16:04:26.650 に答える