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行なので当然かも知れませんが注意が必要です。

当サイトのおすすめ記事

パソコン 1

当サイトは約5年間、さくらのレンタルサーバで運用させて頂きました。 何かトラブルがあったわけではないのですが、WordPressの表示速度を速くしたくてSSD搭載のレンタルサーバーで運用してみることに ...

プログラミング 2

Contents1 SQLでIFを使わずに条件分岐する1.1 1.テーブルとデータの準備1.2 2.条件を分岐させて検索1.3 3.解説 SQLでIFを使わずに条件分岐する SQLでIFを書けばWHE ...

SQLServer 3

SQLServerで発生するエラーコードをSQLで取得する SQLServerで発生したエラーコードの内容を メッセージが定義されているテーブルから取得します。 エラーコードを取得するSQL SQLs ...

4

Contents1 SQLServerでテーブル型を戻り値とする関数を作る1.1 テーブル型を戻り値とする関数の作成1.2 呼び出しかた SQLServerでテーブル型を戻り値とする関数を作る SQL ...

5

Contents1 アフィリエイトで即効成果を出す1.1 自分で買えば確実に成果が上がる1.2 A8.netでは自分で購入してもOKなものがある1.2.1 A8.netにサイトを登録する1.2.2 承 ...

-SQL Server
-, , , ,

Copyright© ソフトウェア開発日記 , 2017 AllRights Reserved.