●SQL Server 2008 の新機能
insert 新機能
「PassJ」から定期ニュース(PassJ News:Vol.335)が届きました。その中に「SQL Server 2008 の新機能」が一つ紹介されていました。
【insert 新機能の利用例】
insert into tableX (c1, c2)
values
('a', 10),
('b', 20),
('c', 30);
そう、複数行の insert が、ひとつのステートメントで実行できるようになります。 これまで、次のように書いていましたね。
insert into tableX (c1, c2)
values
('a', 10),
('b', 20),
('c', 30);
そう、複数行の insert が、ひとつのステートメントで実行できるようになります。 これまで、次のように書いていましたね。
【従来の書き方】
begin tran
insert into tableX (c1, c2) values ('a', 10);
insert into tableX (c1, c2) values ('b', 20);
insert into tableX (c1, c2) values ('c', 30);
commit;
トランザクションの個数
「従来の書き方」に違和感を感じましたが、次の説明で納得しました。なお、ひとつのステートメントになりますので、トランザクションは 1 個となっています。逆に、ひとつの列でも挿入が失敗すると、すべてロールバックされます。

