sql - 自动增量插入在 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 的新行?
如果数据库复制的存在没有传播身份种子,我应该如何处理这个问题,这样我就不必管理重复的密钥错误(我确定我没有插入重复项)?
解决方案
推荐阅读
- c++ - 如何区分地图中的 0 和 false?
- c# - 我无法在 C# 或 Crystal Reports 中获得结果,但我可以在 SQL Server 中获得结果
- ios - 使用地图上的标记缩放时,Cordova/Phonegap 应用程序在 GoogleMaps 新 API 上崩溃
- c - 使用哪一种更安全?“==TRUE”或“!=FALSE”
- c# - Razor Pages:对所有返回类型以及何时使用它们感到困惑
- kubernetes - 是否可以在没有 kubernetes 或 docker 的情况下使用 Istio?
- python - 如何在 Jupyter Notebook 中使用 folium 在地图上绘制一百万个点
- sql - SQLite 中的聚合
- sharepoint - 以 Sharepoint 形式记录用户 ID/名称?
- assembly - 在 MASM 中反转字符串。得到一个奇怪的输出