web-dev-qa-db-ja.com

SQL Serverの挿入例

私は時々OracleとSQL Serverを切り替えますが、SQL Serverで最も些細なタスクを行う方法を忘れることがよくあります。 SQLを使用して、SQL Serverデータベーステーブルにデータの行を手動で挿入します。それを行う最も簡単な方法は何ですか?

たとえば、ID(数値)、FIRST_NAME、LAST_NAMEの列を持つUSERSテーブルがある場合、そのテーブルに行を挿入するためにどのクエリを使用しますか?

また、一度に複数の行を挿入する場合、どの構文を使用しますか?

31
n00b

1行のデータを挿入するには:

INSERT INTO USERS
VALUES (1, 'Mike', 'Jones');

特定の列(すべてではなく)で挿入を行うには、更新する列を指定する必要があります。

INSERT INTO USERS (FIRST_NAME, LAST_NAME)
VALUES ('Stephen', 'Jiang');

SQL Server 2008以降で複数行のデータを挿入するには:

INSERT INTO USERS VALUES
(2, 'Michael', 'Blythe'),
(3, 'Linda', 'Mitchell'),
(4, 'Jillian', 'Carson'),
(5, 'Garrett', 'Vargas');

SQL Serverの以前のバージョンでデータの複数の行を挿入するには、次のように「UNION ALL」を使用します。

INSERT INTO USERS (FIRST_NAME, LAST_NAME)
SELECT 'James', 'Bond' UNION ALL
SELECT 'Miss', 'Moneypenny' UNION ALL
SELECT 'Raoul', 'Silva'

「INTO」キーワードは、INSERTクエリではオプションです。ソースおよびより高度なクエリは here にあります。

58
n00b

以下は、データをテーブルに挿入する4つの方法です。

  1. テーブルの列シーケンスがわかっている場合の単純な挿入。

    INSERT INTO Table1 VALUES (1,2,...)

  2. テーブルの指定された列への単純な挿入。

    INSERT INTO Table1(col2,col4) VALUES (1,2)

  3. 一括挿入...

    1. Table2のすべての列をTable1に挿入したい
    2. Table2の列の順序を知っている
    3. このステートメントが使用されている間、Table2の列シーケンスが変更されないことは確かです(おそらく、ステートメントは1回だけ使用されるでしょう)。

    INSERT INTO Table1 {Column sequence} SELECT * FROM Table2

  4. 選択したデータをTable2の指定した列に一括挿入します。

INSERT INTO Table1 (Column1,Column2 ....)
    SELECT Column1,Column2...
       FROM Table2
10
RameezAli

これがお役に立てば幸いです

テーブルを作成:

create table users (id int,first_name varchar(10),last_name varchar(10));

テーブルに値を挿入します。

insert into users (id,first_name,last_name) values(1,'Abhishek','Anand');
0
Abhishek