数据库:SQL Server
我正在使用以下结构将多个记录插入到表中。我从另一个数据库接收要插入的数据。
Insert into table1 select '1','2' UNION ALL select '3','4' UNION ALL select '5','6';
是否有其他方法可以在更短的时间内进行插入?它还被执行为Web请求。我想批量插入在这里不适用,因为我没有文件中的数据可以进行批量插入。 请提供建议。
数据库:SQL Server
我正在使用以下结构将多个记录插入到表中。我从另一个数据库接收要插入的数据。
Insert into table1 select '1','2' UNION ALL select '3','4' UNION ALL select '5','6';
是否有其他方法可以在更短的时间内进行插入?它还被执行为Web请求。我想批量插入在这里不适用,因为我没有文件中的数据可以进行批量插入。 请提供建议。
insert table1 select * from linkedserver.dbname.dbo.table1
如果您正在从.NET代码中插入数据,插入多行的最快方法是使用SqlBulkCopy。 SqlBulkCopy需要DBO权限。
这实际上是我见过的最好的多重插入。只要小心SQL注入,始终在ASP.NET中使用CommandParameters或在MySQL中使用mysql_real_escape。
最近我研究了这个问题,来自MySQL并期望cularis的答案语法,但经过一些搜索,我只能找到你在答案中发布的语法。
编辑:看起来cularis删除了他的答案,他谈论的是INSERT INTO x VALUES (1, 2), (3, 4);
语法。
http://www.sqlteam.com/article/sql-server-2008-table-valued-parameters
然后它变成了一个INSERT INTO ... SELECT * FROM ...
这将有助于防止注入问题。不确定是否可以使用参数化SQL实现。