これに対する答えを探してみましたが、役に立ちませんでした。これがセットアップされた方法の背後にある適切なロジックはありません。男は自分が何をしているのか知りませんが、それは私が取り組まなければならないことです (長い話)。
私はSQL Server 2008R2を使用しています。1つのテーブルからレコードを取得し、データを1対1の関係を持つ4つの別々のテーブルに転送する必要があります(私は知っています-スマートではありません)。データが挿入される最初のテーブルの Identity フィールドから値を取得し、他の 3 つのテーブルに同じ ID を入力し、それに応じてデータを分散させる必要があります。例えば:
OldTable: フィールド 1、フィールド 2、フィールド 3、フィールド 4
NewTable1: ID フィールド、フィールド 1 NewTable2: ID、フィールド 2 NewTable3: ID、フィールド 3 NewTable4: ID、フィールド 4
これをストアドプロシージャで処理したいと思います。ループを実行したいのですが、SQL でのループはお勧めできないと読みました。
Loop moving through each record in OldTable... (??)
INSERT INTO NewTable1
(Field1)
Select Field1 from OldTable
INSERT INTO NewTable2
(ID, Field2)
Select SCOPE_IDENTITY?, Field2 From OldTable Where OldTable.ID = ??
etc for other 2 tables
Loop to next record in OldTable
SCOPE_IDENTITY の使用方法はわかりませんが、これを達成する方法に関係があると感じています。
また、NewTable1 で新しいレコードが作成されるたびにトリガーをセットアップする必要があるでしょう。わかってるよ、狂気だけど、どうしようもないよ。
だから、私は知っておく必要があります 1: 最初にテーブルにデータを入力する最良の方法 2: 新しいレコードのトリガーを作成する方法
1 の解には 2 が含まれる場合があります。
助けてください!