Как я могу создать журнал для сценария пост-развертывания в dacpac?

Я использую проект базы данных SQL-сервера. Для развертывания файла .dacpac я использую SqlPackage.exe с аргументами командной строки.

Используя Action: DriftReport, я могу создавать журнал (добавлен / обновлен / изменен) объектов. Но все же я не могу создать журнал для сценария после развертывания (такие операции, как вставка, обновление и т. Д.).

Есть ли способ создавать отчеты для успешной и неудачной вставки данных.


person Ravindra Sinare    schedule 01.09.2015    source источник
comment
Вы пробовали передать вывод в файл? Это кое-что вам даст. Однако, чтобы по-настоящему уловить все, вам нужно вручную кодировать.   -  person Peter Schott    schedule 01.09.2015
comment
Я попытался сохранить вывод командной строки, который будет отображаться после выполнения команды для публикации. Если какой-либо сценарий после развертывания завершился неудачно, он отобразится на консоли.   -  person Ravindra Sinare    schedule 03.09.2015


Ответы (1)


То, что я сделал для этого, примерно то же, что и комментарий Питера. У меня есть командный файл, как показано ниже

sqlpackage.exe /a:publish /tcs:"the connection string" /sf:".\package.dacpac"  >"%1" 2>"%2"
FOR %%A IN ("%2") DO SET FileSize=%%~zA
if %FileSize% gtr 0 start notepad "%2"

Затем я бы запустил партию как:

thebatch.bat result.txt error_result.text

Идея заключалась в том, чтобы перенаправить вывод этой консольной команды в файл «result.txt» (используя «>») и перенаправить сообщение об ошибке в «error_result.text» (используя «2>»), а затем полагаться на% ~ z в пакетном файле, чтобы получить размер файла и открывать его только в том случае, если что-то пошло не так.

person Simon Wang    schedule 13.01.2016
comment
Саймон прав, стоит отметить ›и 2›, поскольку вам нужно перенаправить как stdout, так и stderr, чтобы получать все сообщения. - person Ed Elliott; 14.01.2016