首页 > 解决方案 > 自动增量插入在 SQL Server 中不起作用(使用数据库复制?)

问题描述

在没有删除行之后,但在通过本地订阅从另一个 SQL Server 实例复制获得 60 个现有行之后,我将插入新行:

INSERT INTO [Business].[dbo].[ImagesTable] (Filename, Title, Price, PriceString, Category, CategoryRank) 
VALUES ('vegan1.jpg', 'vegan1', 380000, '380,000', 'delices vegan', 0)

但这将失败,因为ID它将从某个地方开始(在这种情况下为 9),而不是从使用的最后一个 ID +1 开始,即在我的情况下为 61。

System.Data.SqlClient.SqlException:'违反主键约束'PK_ImagesTable'。无法在对象“dbo.ImagesTable”中插入重复键。重复键值为 (9)。

我的表设置为自动增量,因此我不必使用显式IDENT_CURRENT('ImagesTable')。为什么会这样?

此外,尽管如此,当我尝试显式插入 ID 时,我有:

当 IDENTITY_INSERT 设置为 OFF 时,无法在表“ImagesTable”中插入标识列的显式值。

添加新行的推荐方法是什么?如何插入具有自动设置 ID 的新行?

如果数据库复制的存在没有传播身份种子,我应该如何处理这个问题,这样我就不必管理重复的密钥错误(我确定我没有插入重复项)?

标签: sqlsql-server

解决方案



推荐阅读