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

公開日: : 最終更新日:2016/07/18 SQL Server , , , ,

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

スポンサーリンク
スポンサーリンク
  • このエントリーをはてなブックマークに追加
  • 13 follow us in feedly

関連記事

既に存在するテーブルに他のテーブルからデータをINSERTする方法

テーブルからテーブルへデータコピー 以前の投稿SELECT INTOで既存テーブルのデータを新規テ

記事を読む

日付の重複をSQLで検索する

SQLを使って期間の重複を見つけ出す SQLを使って、開始日付、終了日付を持っているレコードの

記事を読む

SQL Server-ストアドプロシジャーのソースを表示する1

ストアドプロシジャーのソースを表示します。

記事を読む

SELECTした結果をランダムに並び変える

SQLでSELECTした結果をランダムに並び変えて表示する SQLServerでSELECTした結

記事を読む

SQLで前の行と同じ値は表示しないようにする

前の行と同じ値は表示しない SQLで前の行と同じ値は表示しないようにするして 伝票印刷のような処

記事を読む

SQLで存在しない行を生成し固定行数で処理したい時に役立つ方法

帳票データなどで登録されているデータ数に左右されず、 固定行数でデータを取得したい場合があります。

記事を読む

SQL Server-登録されているストアドプロシジャーの一覧を取得する

データベースに登録されているストアドプロシジャーの 一覧を取得します。

記事を読む

SQLServer

SQLServerで取得した値を3ケタずつのカンマ区切りの表示に変更する方法です

SQLServerで取得した値を3ケタずつのカンマ区切りの表示に変更する方法です。 3ケタずつ

記事を読む

MERGEでINSERTとUPDATEを1行で実行する

MERGE文を使うと行の存在有無を気にせずに1行のSQLでOK あるテ

記事を読む

再帰SQLで最大再帰数の指定

再帰SQLを実行すると最大再帰数に達してエラー 先日作成した日付を管理しているテーブルから共通テー

記事を読む

Comment


  1. […] なりました。SqlServerCompact4.0でも同じような処理をしたいのですが、クエリ解析でエラーが発生してしまいます。 ソフトウェア開発日記さんでも紹介されていますが、SqlServer2008以降では […]

Message

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です


*

0で埋めで固定長のデータにする

0で埋めで固定長のデータにする データべース内のデータを0埋めして取

SQLサーバ
SQLServerでROW_NUMBER()を使って連番を採番する

ROW_NUMBER()で連番を取得する SQLServerでROW

SQLでCASE~WHENを使ってみる(2)

CASE~WHENはSQLでCASE~WHENを使ってみるとは別に

SQLで文字列を3分割する

SQLで文字列を3分割する どうしてもSQLServerで特定の

SQLでビット演算を行う

SQLServerでのビット演算 SQLServerのT-SQLでビ

→もっと見る



PAGE TOP ↑