庞大的插入记录到数据库

时间:2013-11-06 08:13:53

标签: sql sql-server tsql

我需要插入大约10条记录。我在考虑foreach循环,你认为它是最好的方法吗。当你找到最好的方法时,我发现这样的东西,

GO
INSERT INTO MyTable (FirstCol, SecondCol)
SELECT 'First' ,1
UNION ALL
SELECT 'Second' ,2
UNION ALL
SELECT 'Third' ,3
UNION ALL
SELECT 'Fourth' ,4
UNION ALL
SELECT 'Fifth' ,5
GO

这个和foreach循环之间有什么区别。哪一个更好。 谢谢大家

3 个答案:

答案 0 :(得分:1)

INSERT INTO MyTable (FirstCol, SecondCol)
VALUES ('First',1),
('Second',2),
('Third',3),
('Fourth',4),
('Fifth',5)
GO

foreach循环和union all方法都将被称为“按行分类行”方法

答案 1 :(得分:1)

只需创建一个插入所有记录的单个.. 因为foreach循环会对数据库造成10次攻击,你将花费更多的时间和资源。

最好对所有10 ..

进行单一查询
INSERT INTO Table ( FirstCol, SecondCol) VALUES
( Value1, Value2 ), ( Value1, Value2 )...

答案 2 :(得分:1)

如果您有MSSQL 2008或更高版本,则可以使用多值插入:

INSERT INTO mytable (id, name)  
VALUES (1, 'One'),
       (2, 'Two'),  
       (3, 'Three')

不幸的是,MSSQL 2005及更早版本不支持此语法。