gpt4 book ai didi

c# - 使用目标表标识列批量插入

转载 作者:行者123 更新时间:2023-11-30 20:38:11 26 4
gpt4 key购买 nike

我正在尝试从 DataTable 批量插入到 SQL Server 中的表中,但在我的数据表中没有 id 列。当我调用 WriteToServer 方法时,它会抛出异常并显示消息

cannot insert null in column id

代码:

CREATE TABLE [dbo].[TBL_HISTORY]
(
[ID] [int] IDENTITY(1,1) NOT NULL,
[VAR1] [int] NOT NULL,
[VAR2] [datetime] NOT NULL,
[VAR3] [smallint] NOT NULL
)

我的数据表有以下数据

[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
}

最佳答案

您需要删除 SqlBulkCopyOptions.KeepIdentity 选项。您告诉它使用您提供的身份,但没有身份,也就是 null。

https://msdn.microsoft.com/en-us/library/system.data.sqlclient.sqlbulkcopyoptions%28v=vs.110%29.aspx

保持身份

保留源标识值。未指定时,标识值由目的地分配。

关于c# - 使用目标表标识列批量插入,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35348388/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com