数据库
首页 > 数据库> > CodeGo.net> SqlBulkCopy到具有复合主键的表

CodeGo.net> SqlBulkCopy到具有复合主键的表

作者:互联网

我正在尝试使用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列的值相同

标签:sql-server-2005,sqlbulkcopy,sql,c,net
来源: https://codeday.me/bug/20191210/2101859.html