ИЗМЕНИТЬ реплицированный столбец в SQL Server 2008 R2. Репликация слиянием

Я хочу изменить столбцы в таблице StudentPerformance

Столбцы, которые нужно изменить:

StudentName varchar(50) to StudentName varchar(100)
Percentage decimal(18,0) to Percentage decimal(18,2)

Он настроен для репликации слиянием.

  • Сделает ли это мой текущий снимок устаревшим?
  • Придется ли мне повторно инициализировать все подписки?
  • Обновит ли он все записи в таблице и увеличит ли трафик репликации, когда я запущу оператор alter?

person Thakur    schedule 15.03.2012    source источник


Ответы (1)


Вам нужно будет сделать это, используя синтаксис ALTER TABLE ALTER COLUMN на издателе. По умолчанию изменения схемы будут распространяться при следующей синхронизации, для свойства публикации @replicate_ddl должно быть установлено значение true. В большинстве случаев не требуется новый снимок или повторная инициализация.

Например, я могу изменить столбец SalesLT.Customer Title с nvarchar(8) null на nvarchar(10) null, выполнив в базе данных публикации:

ALTER TABLE SalesLT.Customer ALTER COLUMN Title NVARCHAR(10) NULL 

В большинстве случаев изменение схемы будет реплицировано при следующей синхронизации. Существуют некоторые исключения, описанные в Внесение изменений в схему баз данных публикации.

person Brandon Williams    schedule 15.03.2012
comment
есть идеи, будут ли все строки обновляться и синхронизироваться (загружаться/загружаться) на всех серверах в репликации? - person Thakur; 16.03.2012
comment
Да, если изменение схемы не выполняется для столбца, участвующего в соединении или параметризованном фильтре. - person Brandon Williams; 16.03.2012
comment
я изменил столбцы, и это не сделало мой снимок устаревшим :) и не обновило все строки, чтобы повлиять на скорость репликации :) - person Thakur; 11.04.2012