powershell: invoke-sqlcmd перехватывает ошибки при использовании -InputFile вместо -Query - PullRequest
1 голос
/ 13 октября 2011

У меня есть скрипт powershell, который выполняет сценарии sql из заданной папки. Это работает, но в случае ошибки я не вижу причину ошибки. В некоторых случаях отображается ошибка, когда сам PowerShell выдает ошибку. Но когда это более простой сбой, такой как конфликт первичного ключа, ошибка не отображается.

Я пробовал это следующим образом, но это не работает при использовании параметра "-InputFile". Заменив это параметром "-Query", вы увидите ошибку.

try 
{
    sqlps Invoke-Sqlcmd -ServerInstance "$dbInstance" -Database "$dbName" -InputFile "$updateScriptsFolder\$updateSql" -username $username -password $password -ErrorAction 'Stop' -Verbose -OutputSqlErrors 1
}
catch
{
    Write-Host "Error while executing $updateScriptsFolder\$updateSql" -foregroundcolor red
    Write-Host $error -foregroundcolor red
}

Единственное решение на данный момент - добавить обработку ошибок в каждый скрипт sql. Но очень вероятно, что разработчики забывают добавить обработку ошибок в свой скрипт. Я хочу более общую обработку ошибок. Кто-нибудь может помочь?

Спасибо, Michael

1 Ответ

1 голос
/ 18 октября 2011

Согласно комментариям выше, прочтите файл в строковую переменную и используйте эту переменную в качестве значения параметра -query.

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