Как синхронизировать добавление и изменение таблиц между двумя базами данных? - PullRequest
0 голосов
/ 23 октября 2019

Я пытаюсь синхронизировать две базы данных, хранящиеся в SQL Server 2012. Я выполняю множество различных операций в исходной базе данных, таких как добавление таблиц и изменение структуры таблиц (добавление столбцов, изменение типов данных, изменение длины nvarchar). Есть ли способ синхронизировать все таблицы в одной и той же схеме, не выбирая их одну за другой, чтобы при добавлении / изменении таблицы в этой схеме она автоматически создавалась / изменялась в целевой БД?

Я пытался использоватьApexSQL, чтобы установить автоматизированную задачу синхронизации, я также попробовал dbForge Data Compare, чтобы установить ту же автоматизированную задачу, наконец, я попробовал SQL Server Replication. Они работают очень хорошо, когда я выбираю серию существующих таблиц, но когда я добавляю таблицу, которая не включена в объекты, которые в настоящий момент синхронизированы, ни у одной из них, кажется, нет настройки, которая автоматически добавляет ее в задачу синхронизации. Кроме того, при попытке изменить структуру таблицы, похоже, возникла проблема с репликацией SQL Server. Некоторые изменения, такие как удаление столбцов, успешно переносятся, а изменение длины nvarchar с помощью SQL невозможно, поскольку возникает ошибка в следующем коде:

ALTER TABLE MyTable ALTER COLUMN MyColumn nvarchar(MAX)

Когда я выполняю запрос, он выдает эту ошибку

Объект 'DF_MyTable_MyColumn' зависит от столбца 'MyColumn'.

ALTER TABLE ALTER COLUMN MyColumn не выполнен, поскольку одинили более объектов имеют доступ к этому столбцу.

Любое предложение ??

...