没有行删除之后,但是在通过本地订阅从另一个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),而不是从上次使用的+1(即本例中的61)开始。
System.Data.SqlClient.SqlException:'违反了主键约束'PK_ImagesTable'。无法在对象“ dbo.ImagesTable”中插入重复键。重复的键值为(9)。
我的表设置为具有自动增量,因此我不必使用显式的IDENT_CURRENT('ImagesTable')
。为什么会这样?
此外,尽管如此,当我尝试显式插入ID时,我有:
当IDENTITY_INSERT设置为OFF时,无法在表'ImagesTable'中为标识列插入显式值。
建议添加新行的方式是什么?如何插入ID为自动设置的新行?
如果数据库复制的存在并没有传播Identity种子,那么我该如何处理,这样我就不必管理重复的键错误(我确定不会插入重复的错误)?
答案 0 :(得分:0)