ステートメントの「INSERT INTO ...」部分を繰り返さずに複数の行を挿入しますか? 質問する

ステートメントの「INSERT INTO ...」部分を繰り返さずに複数の行を挿入しますか? 質問する

何年も前にこれをやったことがあるのですが、構文を思い出せず、「一括インポート」に関する大量のヘルプ ドキュメントや記事を調べてもどこにも見つかりません。

私がやりたいことはこれですが、構文が正確ではありません... 以前にこれをやったことがある人がいたら、助けてください :)

INSERT INTO dbo.MyTable (ID, Name)
VALUES (123, 'Timmy'),
    (124, 'Jonny'),
    (125, 'Sally')

これは正しい構文に近いことはわかっています。「BULK」という単語か何かが必要だったかもしれませんが、思い出せません。何かアイデアはありますか?

SQL Server 2005 データベースにはこれが必要です。次のコードを試しましたが、効果はありませんでした。

DECLARE @blah TABLE
(
    ID INT NOT NULL PRIMARY KEY,
    Name VARCHAR(100) NOT NULL
)

INSERT INTO @blah (ID, Name)
    VALUES (123, 'Timmy')
    VALUES (124, 'Jonny')
    VALUES (125, 'Sally')

SELECT * FROM @blah

私はIncorrect syntax near the keyword 'VALUES'.

ベストアンサー1

構文は SQL Server 2008 ではほぼ機能します (ただし、SQL Server 2005 1では機能しません)。

CREATE TABLE MyTable (id int, name char(10));

INSERT INTO MyTable (id, name) VALUES (1, 'Bob'), (2, 'Peter'), (3, 'Joe');

SELECT * FROM MyTable;

id |  name
---+---------
1  |  Bob       
2  |  Peter     
3  |  Joe       

1質問への回答では、質問が SQL Server 2005 に関するものであることが明確に示されていませんでした。この回答はまだ関連性があると思うので、ここに残しておきます。

おすすめ記事