2013-12-18 4 views
0

В настоящее время я использую sqlcmd для выполнения сценариев в базе данных в рамках моего процесса развертывания. Теперь с несколькими базами данных одним решением является использование этого самого скрипта в пакетной или foreach-базе данных. Проблема с этим, он применяет скрипт к базе данных по одному. Мне нужно что-то, что может сэкономить время.Выполнение сценариев сценариев SQL в нескольких базах одновременно (параллельное выполнение)

Может ли SQLCMD выполнить сценарий для нескольких баз данных в Parallel? Если нет, есть ли команда сценария, которую я могу использовать для этого?

Есть аналогичные вопросы, но нет правильного решения или стресса, что он должен быть методом выполнения в Параллеле, который является главной целью. Инструмент SQL Multi Script делает именно это, но его не открытый исходный код плюс я предпочитаю сценарий.

Любые идеи? Спасибо заранее.

ответ

1

Я смог выполнить это, используя следующее.

  1. Пользователь установит, какие базы данных необходимо развернуть в конкретном экземпляре.
  2. Foreach базы данных он сгенерирует набор команд SQLCMD foreach сценарий для развертывания и поместить его в пакетный файл.

Для примера: S QLCMD_Commands_DB1.bat и SQLCMD_Commands_DB2.bat

  1. Foreach пакетный файл, созданный с будет затем генерировать новый мастер пакетный файл с командами START.

    START "" "SQLCMD_Commands_DB1.bat" START "" "SQLCMD_Commands_DB2.bat"

  2. Выполнить пакетный файл мастер, который будет разворачивать сценарии базы данных в параллель. Я написал это, и он работает так, как ожидалось.

1

Если вы используете SSMS для запуска сценария SQLCMD, вы можете использовать групповой запрос для повторного запуска более одного сервера. Я не совсем уверен, что он работает параллельно или нет. Look here for more information

+0

Спасибо. Однако я использую sqlcmd из командной строки, а не через SSMS. – Geddon

Смежные вопросы