为了账号安全,请及时绑定邮箱和手机立即绑定

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

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

潇湘沐 2019-07-08 16:15:57
如何插入多行而不重复语句的“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'.
查看完整描述

3 回答

?
紫衣仙女

TA贡献1839条经验 获得超15个赞

INSERT INTO dbo.MyTable (ID, Name)

SELECT 123, 'Timmy'

UNION ALL

SELECT 124, 'Jonny'

UNION ALL

SELECT 125, 'Sally'

对于SQLServer 2008,可以在一个值子句中执行此操作一点儿没错根据您问题中的语句(您只需要添加一个逗号来分隔每个值语句).


查看完整回答
反对 回复 2019-07-08
?
蝴蝶刀刀

TA贡献1801条经验 获得超8个赞

您的语法几乎适用于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。我把这个答案留在这里,因为我认为它仍然是相关的。


查看完整回答
反对 回复 2019-07-08
?
扬帆大鱼

TA贡献1799条经验 获得超9个赞

如果您的数据已经在数据库中,则可以:

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)


查看完整回答
反对 回复 2019-07-08
  • 3 回答
  • 0 关注
  • 533 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信