T-SQL でテーブルにデータを挿入 (INSRET) する

T-SQL でテーブルにデータを挿入 (INSRET) してみよう

ここでは、INSRET ステートメントを使って、既存のテーブルにデータを挿入してみましょう。

これらのテーブルを使いますので、こちら のスクリプトを実行して、Student・Test・TestResult テーブルを生成しておいてください。


INSERT ステートメント

次のような Student テーブルがあります。

T-SQL でテーブルにデータを挿入 (INSRET) する 1

T-SQL でテーブルにデータを挿入 (INSRET) する 2

INSERT ステートメントでデータを 1 行挿入する

Student テーブルに、INSERT ステートメントでデータを 1 行挿入するクエリーは以下の通りです。

INSERT INTO Student
        ( FirstName, LastName, Birthday, Gender )
    VALUES
        ('Takuya', 'Yamamoto', '1981-11-05', 'M' );

[ 実行結果 ]
T-SQL でテーブルにデータを挿入 (INSRET) する 3

レコードが StudentID = 7 として挿入されましたね。

StudentID は IDENTITY プロパティを設定してあるので、自動的に連番が生成されます。 詳しくは改めて他のページで説明します。

ここでは、IDENTITY プロパティを指定してあるカラムには、基本的に INSERT ステートメントで値を指定して挿入することができず、自動的に連番が生成されるということだけ押さえておいてください。


今回は、StudentID 以外の全てのカラムに値を指定しましたが、NULL が許可されているカラムは指定しなくても大丈夫です。

INSERT INTO Student の後のカッコでくくったカラムのリスト(下記の黄色ハイライトされた部分)は、カラムが定義されている順番に、すべてのカラムを指定して挿入する場合は省略可能ですが、後でテーブルにカラムを追加した時などにエラーの原因となりますので、カラムは指定するようにしましょう。

T-SQL でテーブルにデータを挿入 (INSRET) する 5


INSERT ステートメントでデータを複数行挿入する

Student テーブルに、INSERT ステートメントでデータを 3 行挿入するには、次のようにカンマで区切って値のセットを指定します。

INSERT INTO Student
        ( FirstName, LastName, Birthday, Gender )
    VALUES
        ('Sakura', 'Hata', '1980-07-07', 'F' ),
        ('Ayame', 'Hata', '1981-12-11', 'F' ),
        ('Shinji', 'Hata', '1983-05-06', 'M' );

[ 実行結果 ]
T-SQL でテーブルにデータを挿入 (INSRET) する 4

Student テーブルにレコードが 3 行挿入されました。


次は、INSERT と SELECT を使って他のテーブルからデータを挿入してみましょう。

© 2010-2024 SQL Server 入門