【发布时间】:2012-05-11 13:54:51
【问题描述】:
我在 SQL 数据库中有一个表,它有两个字段 Random(主键且不为空)和 Count(身份递增 1)。我必须在 Random 字段中插入十亿条记录。我能够一次插入 1000 行,因为这是 SQL Insert 语句可以处理的最大值(在使用 ADO.NET 的 C# 控制台应用程序中)。
我尝试插入的数据是随机的,但不是唯一的。所以,我得到了例外“违反主键......”。不是只删除重复值,而是删除所有 1000 行。
是否可以通过仅删除重复值而不是插入语句中的所有记录(在我的情况下为 1000)来插入唯一值?
我也尝试过使用 DataTable 和 SQLBulkCopy 插入值,但没有成功。
示例场景:TableA
随机计数
100 1
101 2
插入(随机)TableA 值 (102),(103),(100),(104),(105),(101)
100 和 101 是重复值。有没有办法只删除这些值(100,101)并插入所有其他值(102,103,104,105)? (在我的程序中,由于主键违规,所有值都被删除了)
非常感谢您对此的任何帮助。
谢谢
【问题讨论】:
标签: database c#-4.0 insert sql-server-2008-r2