我正在尝试使用SqlBulkCopy通过在应用程序中手动填充DataTable将新行插入数据库表中.
对于具有由3列组成的复合主键的表,此方法对所有表均适用.每当我尝试将SqlBulkCopy任何内容插入此表时,都会出现以下错误:
Violation of PRIMARY KEY constraint 'PK_MYCOMPOSITEKEY'. Cannot insert duplicate key in object 'dbo.MyTable'.
The statement has been terminated.
这有可能吗?
我尝试使用以下命令设置DataTable的主键:
dt.PrimaryKey = new[] {dt.Columns["PKcolumn1"], dt.Columns["PKcolumn2"], dt.Columns["PKcolumn3"]};
但同样,没有运气.
解决方法:
您的问题在于数据.
在输入文件中有一个或两个
e pk列中的数据与表中已有的数据相同的行
要么
该文件至少有两行,其pk列的值相同