小编典典

插入多行而不重复语句的“INSERT INTO ...”部分?

all

我知道我在几年前就已经这样做了,但是我不记得语法了,而且由于提取了大量有关“批量导入”的帮助文档和文章,我在任何地方都找不到它。

这是我想做的,但语法不完全正确......请,以前做过这个的人,帮帮我:)

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


阅读 118

收藏
2022-03-08

共1个答案

小编典典

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

对于 SQL Server 2008,可以 完全 按照您问题中的语句在一个 VALUES 子句中执行此操作(您只需添加一个逗号来分隔每个值语句)…

2022-03-08