如何插入多行而不重复语句的“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,可以在一个值子句中执行此操作一点儿没错根据您问题中的语句(您只需要添加一个逗号来分隔每个值语句).
蝴蝶刀刀
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。我把这个答案留在这里,因为我认为它仍然是相关的。
扬帆大鱼
TA贡献1799条经验 获得超9个赞
INSERT INTO MyTable(ID, Name)SELECT ID, NAME FROM OtherTable
INSERT INTO MyTable (Name, ID)VALUES ('First',1),('Second',2),('Third',3),('Fourth',4),('Fifth',5)
添加回答
举报
0/150
提交
取消