我正在尝试从DataTable
批量插入SQL Server中的表,但在我的数据表中我没有id列。当我调用WriteToServer
方法时,它会抛出一条带有消息的异常
无法在列ID中插入null
代码:
CREATE TABLE [dbo].[TBL_HISTORY]
(
[ID] [int] IDENTITY(1,1) NOT NULL,
[VAR1] [int] NOT NULL,
[VAR2] [datetime] NOT NULL,
[VAR3] [smallint] NOT NULL
)
我的dataTable有以下数据
[VAR1], [VAR2], [VAR3]
C#代码:
using(SqlBulkCopy bulk = new SqlBulkCopy(this.mConnection,SqlBulkCopyOptions.UseInternalTransaction | SqlBulkCopyOptions.KeepIdentity, null))
{
bulk.DestinationTableName = ToTable;
bulk.WriteToServer(dt); // here exception is thrown
}
答案 0 :(得分:3)
您需要删除SqlBulkCopyOptions.KeepIdentity选项。你告诉它使用你提供的身份,没有,也就是null。
https://msdn.microsoft.com/en-us/library/system.data.sqlclient.sqlbulkcopyoptions%28v=vs.110%29.aspx
KeepIdentity
保留源标识值。未指定时,标识值由目标分配。