Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Microsoft SQL Server Новый топик    Ответить
 Последствия репликации.  [new]
Underking
Member

Откуда: Rostov-on-Don
Сообщений: 488
Первоначально таблица реплицируется на сервер. Далее мы отключаем репликацию, и начинаем просто добавлять записи в таблицу.
И сразу же натыкаемся на ошибку: Violation of PRIMARY KEY constraint 'PK_tablename'. Cannot insert duplicate key in object 'dbo.tablename'.
Если отключить и затем включить Identity Increment, то проблема решается.
Как можно более красиво решить данную проблему?
Структуру таблиц мне менять нельзя (вне моей юрисдикции).
27 июл 12, 13:15    [12925000]     Ответить | Цитировать Сообщить модератору
 Re: Последствия репликации.  [new]
Александр52
Member

Откуда: Кокосовые острова ส็็็็็
Сообщений: 5133
не вставлять элемент дублирующий
27 июл 12, 13:31    [12925136]     Ответить | Цитировать Сообщить модератору
 Re: Последствия репликации.  [new]
Underking
Member

Откуда: Rostov-on-Don
Сообщений: 488
Чуть подробней. Дублирующий что?
27 июл 12, 13:46    [12925259]     Ответить | Цитировать Сообщить модератору
 Re: Последствия репликации.  [new]
Александр52
Member

Откуда: Кокосовые острова ส็็็็็
Сообщений: 5133
Вы посмотрите о чем говорит ваша ошибка.
27 июл 12, 14:08    [12925420]     Ответить | Цитировать Сообщить модератору
 Re: Последствия репликации.  [new]
invm
Member

Откуда: Москва
Сообщений: 9404
Identity range надо настраивать для статьи, если планируется добавлять данные на подписчике.
27 июл 12, 14:08    [12925426]     Ответить | Цитировать Сообщить модератору
 Re: Последствия репликации.  [new]
Underking
Member

Откуда: Rostov-on-Don
Сообщений: 488
Ситуация в другом.
Репликация была. В таблицу с другого сервера приехала пачка записей. Затем мы просто убираем репликацию. Ее больше нет.
Перед нами таблица, заполненная репликацией. И только теперь мы хотим с ней работать. PRIMARY KEY, это поле с автоинкрементом. И мне нужно чтоб оно автоматически начало продолжило заполняться, после тех значений, которые приехали во время репликации.
Но он не хочет продолжать. Один из вариантов исправления, это сначала отменить автоинкремент, потом снова включить. И тогда все заработает как надо.
Но не хотелось бы такое проделывать с таблицами.

автор
Identity range надо настраивать для статьи, если планируется добавлять данные на подписчике.

Это не требуется. Репликация была сделана когда-то, а теперь ее нет.
27 июл 12, 15:04    [12925939]     Ответить | Цитировать Сообщить модератору
 Re: Последствия репликации.  [new]
design21
Member

Откуда: Minsk
Сообщений: 59
проблема в том, что счетчик IDENTITY не обновлялся во время репликации, и теперь сервер пытается снова вставить значение X в поле IDENTITY не смотря на то, что X там уже есть.
вам необходимо установить занчение IDENTIY для вашей таблицы:

DBCC CHECKIDENT ("tablename", RESEED, @MaxId+1);


где @MaxId - число строк в вашей таблице.
27 июл 12, 15:20    [12926063]     Ответить | Цитировать Сообщить модератору
 Re: Последствия репликации.  [new]
invm
Member

Откуда: Москва
Сообщений: 9404
Underking
invm
Identity range надо настраивать для статьи, если планируется добавлять данные на подписчике.

Это не требуется. Репликация была сделана когда-то, а теперь ее нет.
А это вам на будущее. Чтобы в следующий раз на эти грабли не наступали.
27 июл 12, 15:44    [12926251]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить