【发布时间】:2013-12-04 21:29:09
【问题描述】:
我想一次向 SQL Server 中插入大约 5000 行(通常有时可能超过 10K+)行。我的插入语句是由 C# 程序生成的。
一种方法是简单地生成一个包含这些 SQL 语句的大字符串,然后使用 SqlCommand.ExecuteNonQuery(); 实际让 SQL Server 执行它们,但存在 SQL Server 可能无法执行这样的大语句的风险。
有没有一种方法可以将 SQL 语句推送到某种“SQL Server 缓冲区”(如果有的话),然后最终全部执行?
编辑 - 我正在使用 SQL Server 2005、2008。所以,我需要与两者兼容的东西。
谢谢。
【问题讨论】:
-
Google 搜索“SQL Server 批量插入”,您会找到许多解决方案。
-
有比自制(.net、php、coldfusion,没关系)应用程序更好的方法将数千行插入数据库,但有时确实需要自己动手。如果是这样,您将不得不一一添加您的记录。
-
@DanBracuk - 这正是我现在正在做的事情。我不确定逐行是否是最好的方法。如果我让它分批 5K、10K 等,那么 SQL Server 不会执行那些大字符串。可能是大小的限制。
标签: c# sql sql-server sql-server-2005