DB:SQL server
我使用以下构造将多个记录插入表中。我正从其他数据库接收数据(要插入)。
插入table1 选择'1','2'UNION ALL 选择'3','4'UNION ALL 选择'5','6';
是否有任何其他机会在较少的时间内进行插入。它也作为Web请求执行。我猜这里的批量插入不适合,因为我没有文件中的数据来进行批量插入。 有任何建议请..
答案 0 :(得分:1)
如果源数据库也是SQL Server,则可以添加链接服务器并:
insert table1 select * from linkedserver.dbname.dbo.table1
如果从.NET代码插入,插入多行的最快方法是SqlBulkCopy。 SqlBulkCopy确实需要DBO权限。
答案 1 :(得分:0)
这实际上是我见过的最好的多重插入。注意SQL注入,始终在ASP.NET中使用CommandParameters或在MySQL中使用mysql_real_escape。
答案 2 :(得分:0)
我最近调查了这篇文章,来自MySQL并期待来自cularis'答案的语法,但经过一些搜索后,我找到的就是你在答案中发布的语法。
编辑:看起来cularis删除了他的答案,他在谈论INSERT INTO x VALUES (1, 2), (3, 4);
语法。
答案 3 :(得分:0)
如果您使用的是SQL Server 2008和存储过程,则始终可以使用表值参数:
http://www.sqlteam.com/article/sql-server-2008-table-valued-parameters
然后变为INSERT INTO ... SELECT * FROM ...
这有助于防止注射问题。不确定参数化SQL是否可行。