У меня есть файл .sql
, который записывает сценарии пользователей БД и разрешения с использованием динамического SQL. Он использует команду PRINT для вывода фактического скрипта, который будет выполнен. Я использую Powershell для автоматизации процесса, который должен:
- Выполните этот скрипт для
MyDatabase
и сохраните результаты
- Восстанавливает новую базу данных поверх
MyDatabase
- Выполняет сценарий пользователей / разрешений, созданный / сохраненный на шаге 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
пустой строкой, но это не сработало.