如何插入多行而不重复语句的“InsertIndbo.Blah”部分?

如何插入多行而不重复语句的“InsertIndbo.Blah”部分?

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

这是我想做的,但语法不完全正确.拜托,以前做过这件事的人,帮帮我吧:)

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

我知道这是正确的语法。我可能需要“散装”这个词,或者别的什么,我不记得了。知道吗?

我需要这个用于SQLServer 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'.


潇湘沐
浏览 534回答 3
3回答

紫衣仙女

INSERT INTO dbo.MyTable (ID, Name)SELECT 123, 'Timmy'UNION ALLSELECT 124, 'Jonny'UNION ALLSELECT 125, 'Sally'对于SQLServer 2008,可以在一个值子句中执行此操作一点儿没错根据您问题中的语句(您只需要添加一个逗号来分隔每个值语句).

蝴蝶刀刀

您的语法几乎适用于SQLServer 2008(但在SQLServer 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在回答这个问题时,并没有清楚地表明这个问题指的是SQLServer 2005。我把这个答案留在这里,因为我认为它仍然是相关的。

扬帆大鱼

如果您的数据已经在数据库中,则可以:INSERT INTO MyTable(ID, Name)SELECT ID, NAME FROM OtherTable如果需要对数据进行硬编码,则SQL 2008和更高版本允许您执行以下操作.INSERT INTO MyTable (Name, ID)VALUES ('First',1),('Second',2),('Third',3),('Fourth',4),('Fifth',5)
打开App,查看更多内容
随时随地看视频慕课网APP