1. ホーム
  2. sql-server

[解決済み] INSERT INTO ...」の部分を繰り返さずに複数行の挿入を行うには?

2022-03-17 05:23:27

質問

何年も前にやったことがあるのは分かっているのですが、構文を思い出せず、"bulk imports"に関する大量のヘルプドキュメントや記事を引っ張り出しても、どこにも見つけることができません。

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

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'.

解決方法を教えてください。

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

SQL Server 2008では、1つのVALUES句で実行できます。 まさに ご質問の文のように(各values文を区切るためにカンマを追加する必要があるだけです)...。