IDENTITY列の複数テーブルへのINSERT

なすひこ
2014-10-02 17:19 2288 1
テーブルAへINSERTをした場合のIDENTITY列の値を
同じトランザクション内で
テーブルBの別のフィールドへINSERTしたいのですが、
どのようにSQLを書けばよいのか、困っています。
どうか、ご教示お願い致します。

INSERT INTOTABLE_A (NAME_A) VALUES ('あいうえお')
INSERT INTOTABLE_A (A_ID,NAME_B) VALUES (取得したA_ID, 'さしす')

INSERT INTOTABLE_A (NAME_A) VALUES ('かきくけこ')
INSERT INTOTABLE_A (A_ID,NAME_B) VALUES (取得したA_ID, 'たちつ')

INSERT INTOTABLE_A (NAME_A) VALUES ('さしすせそ')
INSERT INTOTABLE_A (A_ID,NAME_B) VALUES (取得したA_ID, 'なにぬ')

TABLE_A
ID NAME_A
5  'あいうえお'
6  'かきくけこ'
7  'さしすせそ'

TABLE_B
ID A_ID NAME_B
1  5  'さしす'
2  6  'たちつ'
3  7  'なにぬ'

コメント

2014年 10月 06日 (15:01)

こんにちは。
イノ(inno)です。

下記のように@@IDENTITYを使えばできます。


CREATE TABLE TABLE_A
(
A_ID INT IDENTITY(1,1) NOT NULL
, NAME_A NVARCHAR(100)
)

CREATE TABLE TABLE_B
(
B_ID INT IDENTITY(1,1) NOT NULL
, A_ID INT NOT NULL
, NAME_B NVARCHAR(100)
)


INSERT INTO TABLE_A (NAME_A) VALUES ('あいうえお')

INSERT INTO TABLE_B (A_ID,NAME_B) VALUES (@@IDENTITY, 'さしす')

INSERT INTO TABLE_A (NAME_A) VALUES ('かきくけこ')

INSERT INTO TABLE_B (A_ID,NAME_B) VALUES (@@IDENTITY, 'たちつ')

INSERT INTO TABLE_A (NAME_A) VALUES ('さしすせそ')

INSERT INTO TABLE_B (A_ID,NAME_B) VALUES (@@IDENTITY, 'なにぬ')



SELECT * FROM TABLE_A

SELECT * FROM TABLE_B