После удаления строк, но после получения 60 существующих строк по локальной подписке для репликации из другого экземпляра SQL Server, я вставляю новые строки с:
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: 'Нарушение ограничения PRIMARY KEY 'PK_ImagesTable'. Невозможно вставить дубликат ключа в объект 'dbo.ImagesTable'. Значение ключа-дубликата равно (9).
Моя таблица настроена на автоинкремент, поэтому мне не следует использовать явный IDENT_CURRENT('ImagesTable')
. Почему это происходит?
Кроме того, несмотря на это, когда я пытаюсь явно вставить идентификатор, у меня есть:
Невозможно вставить явное значение для столбца идентификаторов в таблице 'ImagesTable', когда IDENTITY_INSERT имеет значениеустановите на OFF.
Каков рекомендуемый способ добавления новых строк? Как я могу вставить новые строки с автоматически устанавливаемым идентификатором?
Если наличие репликации БД не распространяет начальное значение Identity, как мне справиться с этим, чтобы мне не приходилось управлять ошибками дублирующихся ключей (Я уверен, что я не вставляю дубликаты)?