一条SQL查询中插入多个数据记录

4

数据库:SQL Server

我正在使用以下结构将多个记录插入到表中。我从另一个数据库接收要插入的数据。

Insert into table1 select '1','2' UNION ALL select '3','4' UNION ALL select '5','6';

是否有其他方法可以在更短的时间内进行插入?它还被执行为Web请求。我想批量插入在这里不适用,因为我没有文件中的数据可以进行批量插入。 请提供建议。

4个回答

1
如果源数据库也是SQL Server,您可以添加一个链接服务器并执行以下操作:
insert table1 select * from linkedserver.dbname.dbo.table1

如果您正在从.NET代码中插入数据,插入多行的最快方法是使用SqlBulkCopy。 SqlBulkCopy需要DBO权限。


由于数据在其他数据库中,我无法直接将其涉及到选择查询中。我将其提取到我的变量中,并执行此插入操作。 - Muthukumar Palaniappan
是的,我正在使用.NET插入数据,我会去看看。 - Muthukumar Palaniappan

0

这实际上是我见过的最好的多重插入。只要小心SQL注入,始终在ASP.NET中使用CommandParameters或在MySQL中使用mysql_real_escape。


0

最近我研究了这个问题,来自MySQL并期望cularis的答案语法,但经过一些搜索,我只能找到你在答案中发布的语法。

编辑:看起来cularis删除了他的答案,他谈论的是INSERT INTO x VALUES (1, 2), (3, 4);语法。


@cularis 在 SQL Server 2008+ 中是可能的。 - Filip De Vos

0

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接