Существует ли лучший способ синхронизации хранимых процедур между базами данных, который также прост и может быть выполнен в Visual Studio? - PullRequest
1 голос
/ 19 февраля 2010

Код синхронизирован, потому что я отвечаю за этот аспект (это просто копирование на разные серверы, когда мне нужно)

Сотрудники БД несут ответственность за синхронизацию сервис-провайдеров, и сейчас они просят их вручную выполнить процедуру ALTER PROCEDURE для конкретной БД.

Есть ли какой-нибудь простой способ сделать это в Visusal Studio?

Мне бы хотелось иметь проект БД в VS и иметь возможность просто нажать кнопку, и это пошло бы на каждый сервер БД в каком-либо файле конфигурации и убедитесь, что все они совпадают.

что-то в этом роде?

Ответы [ 2 ]

0 голосов
/ 19 февраля 2010

Да, можно синхронизировать объекты одним нажатием кнопки из 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

0 голосов
/ 19 февраля 2010

Мы используем набор инструментов Redgate для этого. Я не работаю там, но я уверен, что люблю инструменты. VS также имеет инструмент сравнения БД, если вы получаете VSTS или версию БД. Не уверен, что это позволит вам синхронизировать их или нет, но даст вам патроны, чтобы показать вашему боссу проблему.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...