SQL Q&A

 

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

テーブル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-02 17:19:07   1326

コメント

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

SQL SERVER 店舗毎のTOP10

-.日付:2015-12-22   カテゴリ : -   閲覧数:417

SQLServer Management Studio サーバーへの接続履歴を削除したい  (1)

-.日付:2015-03-09   カテゴリ : -   閲覧数:1540

sql server 2008 でselect文のwhere句にcaseを使って複数条件をセットしたい

-.日付:2015-02-12   カテゴリ : -   閲覧数:1249

IDENTITY列の複数テーブルへのINSERT  (1)

-.日付:2014-10-02   カテゴリ : -   閲覧数:1326

Sqlのパフォーマンスについての質問です。  (1)

-.日付:2014-08-27   カテゴリ : -   閲覧数:1192

SELECT時にカウントアップ  (1)

-.日付:2014-08-25   カテゴリ : -   閲覧数:1456

「char」と「varchar」は何か違いがあるのでしょうか?  (1)

-.日付:2014-07-30   カテゴリ : -   閲覧数:1215

Copyright © 2015 INNOYA.COM All rights reserved. RSS