【问题标题】:Pushing inserts into SQL Server with C#?使用 C# 将插入推送到 SQL Server?
【发布时间】: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


【解决方案1】:

使用SqlBulkCopy 实现该目标。我认为这将是最好的方法

【讨论】:

  • 是的 SqlBulkCopy 应该是要走的路。看看MSDN Example
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2016-01-14
  • 1970-01-01
  • 1970-01-01
  • 2017-09-16
  • 1970-01-01
  • 2011-08-17
  • 1970-01-01
相关资源
最近更新 更多