Прямо сейчас у меня есть БД, где PK - int IDENTITY
. Недавно, в прошлом году, мне было поручено добавить их в топологию репликации. Это получилось достаточно хорошо, за исключением полей IDENTITY.Замена PK в существующих таблицах SQL DB
Я хочу изучить варианты замены или замены их uniqeidentifier
(GUID).
Возможно ли вставить столбец NEW PK?
Могу ли я лучше всего увеличить его до big int
?
Что-нибудь еще, что я должен учитывать?
Чтобы уточнить, почему я хочу сделать это сделать:
Это мое понимание того, что при репликации сталкивается с IDENTITY столбца он устанавливает отложенный диапазон идентификаторов, скажем, 1-1000 (по умолчанию), для каждого для обеспечения уникального INT для этого столбца. Чем больше подписчиков у вас есть, тем больше проблема может стать. Это приводит к ошибкам, связанным с ошибками идентификации диапазона идентификации, которые мы продолжаем получать.
Благодаря
Не можете ли вы добавить новый столбец GUID для использования в репликации? Просто добавьте - не заменяйте - может быть проще (если это возможно) –
Для этого нужно сделать заказ на использование репликации и сделано. Проблема, которую я пытаюсь решить, связана с «ограничениями проверки диапазона идентификации», которая является прямой корреляцией с тем, как Replication имеет дело с полями Identity. –
Итак, в этом случае я бы * добавил * новое поле GUID и сделал бы это PK - но NCLCLUSTERED PK - и оставил INT IDENTITY в качестве ключа кластеризации в таблице. Ваша производительность может сильно пострадать в противном случае ... –