SQLServerCE / Local Data Cache / Sync Framework - Ошибка вставки - PullRequest
1 голос
/ 09 июня 2009

Надеюсь, кто-нибудь сможет мне помочь. У меня есть Visual Studio 2008 WinForms приложение, в которое я добавил локальный кэш данных. Локальный кеш данных используя файл SDF через SqlServerCE и кэширует базу данных SQL Server 2008 с отслеживание изменений включено.

Это работает, и я могу выполнять двунаправленную синхронизацию и тому подобное.

У меня проблема со вставкой данных в локальные таблицы, которые были созданы волшебниками VS. Когда я пытаюсь вставить данные либо программно или даже через интерфейс VS (показать данные) я получаю ошибку «Дублирующее значение не может быть вставлено в уникальный индекс» из-за ограничение первичного ключа.

Таблицы имеют первичный ключ auto inc int, и кажется, что начальное число имеет был сброшен обратно к одному. Это не происходит со всеми таблицами, но только немногие.

Есть идеи, как мне это исправить?

С уважением, Адам

Ответы [ 3 ]

0 голосов
/ 07 августа 2009

У меня возникла та же проблема, и я заменил значения Int / auto-incremental значениями GUID. хорошо работает для меня.

0 голосов
/ 08 января 2016

У меня была такая же проблема. Я исправил это, сделав каждый первичный ключ на каждой из моих таблиц GUID. Таким образом, когда записи создаются на клиенте в автономной среде и затем синхронизируются с сервером, между первичными ключами клиент / сервер не возникает конфликтов. Это также предотвращает конфликты с IDENTITY, приписываемым автоматически увеличивающимся на каждом INSERT значению, которое уже существует.

Как видно на скриншоте ниже, тип данных установлен на nvarchar(50) (это может быть любой тип данных в виде строки), значение по умолчанию установлено на (newid()), а спецификация идентификации установлена ​​на No.

Скриншот атрибута GUID в SQL Server Management Studio: GUID attribute screenshot in SQL Server Management Studio

Подробнее о GUID Типе данных можно прочитать в Документации Microsoft и посмотреть, подходят ли они для вашего конкретного сценария.

0 голосов
/ 27 июня 2009
  • Вы можете опубликовать оператор DDL сервера для соответствующей таблицы?
...