Да, можно синхронизировать объекты одним нажатием кнопки из Visual Studio. Это делается путем вызова командной строки Red Gate SQL Compare из VS, если вы добавляете запись в Tools / External Tools
Конечно, сначала нужно установить SQL Compare.
А затем настройте следующий внешний инструмент (в этом примере копируется хранимая процедура из базы данных dev в тестовую базу данных):
- Заголовок: Синхронизация выбранной хранимой процедуры
- Команда: c: \ Program Files \ Red Gate \ SQL Compare 8 \ SQLCompare.exe
- Аргументы: /s1:.\sql2005 / db1: DevDB /s2:.\sql2005 / db2: TestDB
/ Включают в себя: StoredProcedure: [$ (CurText)]
/ синхронизировать
- Отметьте «Использовать вывод»
окно ", чтобы вы могли видеть, что происходит
на.
Это добавит элемент в меню «Инструменты». Вы также можете добавить это как кнопку на панели инструментов.
Чтобы использовать это, выберите текст хранимой процедуры, которую вы хотите синхронизировать, и перейдите в Инструменты / Синхронизация выбранной хранимой процедуры. Это синхронизирует выбранную процедуру. Недостаток заключается в том, что приведенный выше пример представляет собой синхронизацию «один к одному». Если у вас есть несколько целевых серверов, вам придется обернуть несколько операторов в пакетный файл и несколько раз вызвать командную строку sqlcompare.exe. Конечно, вышеупомянутый «Внешний инструмент» должен будет вызвать пакетный файл и передать параметр в пакетный файл.
Конечно, это решение предполагает, что вы применили вашу хранимую процедуру к базе данных разработки. Ты так работаешь? Или вы пытаетесь синхронизироваться из сценария, который принадлежит вашему проекту VS?
Мне было бы интересно обсудить это с вами дальше и посмотреть, сможем ли мы помочь вам решить эту проблему. Не стесняйтесь, напишите мне на David.Atkinson на red-gate.com