Лучший способ получить динамический вывод SQL из sqlcmd - PullRequest
0 голосов
/ 30 октября 2018

У меня есть файл .sql, который записывает сценарии пользователей БД и разрешения с использованием динамического SQL. Он использует команду PRINT для вывода фактического скрипта, который будет выполнен. Я использую Powershell для автоматизации процесса, который должен:

  1. Выполните этот скрипт для MyDatabase и сохраните результаты
  2. Восстанавливает новую базу данных поверх MyDatabase
  3. Выполняет сценарий пользователей / разрешений, созданный / сохраненный на шаге 1.

В настоящее время я записываю вывод и сохраняю его в виде файла, используя аргумент -o с sqlcmd, например:

sqlcmd -e -i ($path + "ScriptUsers.sql") 
       -d $MyDatabase -S $MyServer -o "MyNewUsersScript.sql"

Это прекрасно работает, по большей части. Недостатком является то, что MyNewUsersScript.sql содержит весь текст ScriptUsers.sql, а также печатный вывод. Я действительно очень хочу получить распечатанный вывод, и я предположил, что это то, что мне дадут, поэтому я не уверен, почему MyNewUsersScript.sql содержит как скрипт из ScriptUsers.sql, так и его вывод. Я пытался сделать Get-Content на MyNewUsersScript.sql и заменить текст из ScriptUsers.sql пустой строкой, но это не сработало.

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