0
次のような構造のテーブルA、B、Cが3つあります。複数の行データを2つのテーブルに同時に挿入するにはどうすればいいですか
表
ID - (int) - PrimaryKey - Identity(auto-generated)
DeptCode - (int)
表B
ID - (int) - PrimaryKey - Identity(auto-generated)
Data1 - varchar
AID - Foreign Key from Table-A
表-C
ID - (int) - PrimaryKey - Identity(auto-generated)
Data2 - varchar
Data3 - varchar
BID - Foreign Key from Table-B
M y質問: 'Table-A'の "DeptCode = 101"で、 'Table-B'の新しく挿入された各データに対応するすべてのレコードの 'Table- C ' - 単一クエリで
この問題は、条件が満たされている' table-A 'から' Table-B 'に複数の行データを挿入することで2つに分けることができます。次のスクリプトを使用して実行できます。
INSERT INTO [TableB] ([Data1]) SELECT NEWID() FROM TableA WHERE [DeptCode] = 101;
表Bの1行に新たに追加された行については、次のクエリを使用して 'Table-C'にデータを追加できます。あなたが複数挿入された行を管理するためにoutput
句を使用することができます「テーブル-A」
BEGIN TRANSACTION
DECLARE @DataID int;
INSERT INTO Table2 ([Data1]) VALUES (NewID());
SELECT @DataID = scope_identity();
INSERT INTO Table3 VALUES ('some data', 'some more data', @DataID);
COMMIT