Эта проблема, по сути, связана с автоматизацией ручного процесса входа на SQL Server и запуска сценария для одной или нескольких баз данных, который выполняет необходимые изменения.
Конечно, хуже, если экземпляры SQL Server, которые вам нужно обновить, удалены от вас и поэтому не доступны напрямую.
Также важно обеспечить, чтобы сценарии применялись последовательно - было бы бессмысленно запускать сценарий «добавления индекса» перед сценарием «создания таблицы».
Мы решили это с помощью веб-службы, которая упаковывает файлы сценариев как наборы данных и доставляет их в правильной последовательности на удаленные системы при вызове home.
На удаленном сервере SQL у нас есть приложение .NET, которое вызывает веб-сервис, загружает файлы сценариев, распаковывает их и применяет их к базе данных.
Когда удаленная система звонит, она предоставляет идентификатор самого последнего обновления, которое она имеет. Когда веб-служба завершает свою работу, она знает последний, который она доставила. Поэтому просто знать, на каком уровне находятся удаленные системы.
Единственное необходимое ручное вмешательство - это сначала создать сценарии и загрузить их на центральный сервер.