SQL Server

1行のINSERT文で複数のデータを挿入する方法

投稿日:2012/12/07 更新日:

1行のInsertで複数件のデータ挿入

これまでは1行INSERT文では1行のデータしか挿入できませんでしたが、SQLServer2008では1行のINSERT文で複数件を挿入できます。

複数行のInsert文で複数件のデータ挿入

通常はテーブルに複数件挿入する場合は以下の様にINSERT文を複数件書いて実行します。

以下が挿入後の検索結果です。

1行のINSERT文で複数件データ挿入

SQLServer2008で実行できるようになった1行のINSERT文で複数件挿入する
SQLは「VALUES以降をカンマで区切って」渡せば挿入できます。

以下が挿入後の検索結果です。

挿入できるのは最大1000行までとHELPにありますので、それ以上の場合はINSERT文を分けて実行する必要があります。

1行のINSERT文で複数件データ挿入時のエラー動作

はじめに複数行でINSERTする場合を検証します。
わざとエラーになうように、3行目でint型にVARCHAR型を入れてあります。

実行結果は

になります。

テーブルをSELECTすると

となり、エラー発生後のデータはテーブルに挿入されていません。

次に1行のINSERT文で複数件挿入するSQLでエラーになる行を含む行があった場合にどうなるかを検証します。
これも同じ様に、わざとエラーになうように、3行目でint型にVARCHAR型を入れてあります。

実行結果は

エラー発生後にテーブルを検索してみても

行が1行も選択されないので、エラー行を含む場合は1行のINSERTで複数件挿入する場合は
「全行のデータが挿入されない」
ようです。

1行なので当然かも知れませんが注意が必要です。




-SQL Server
-, , , ,

Copyright© ソフトウェア開発日記 , 2018 All Rights Reserved.