开发者

powershell: invoke-sqlcmd catching errors when using -InputFile instead of -Query

开发者 https://www.devze.com 2023-04-12 12:24 出处:网络
I have an powershell script which is executing sql scripts from a given folder. This is working, but in case of error I don\'t see the reason of the error. In some cases the error is displayed, when t

I have an powershell script which is executing sql scripts from a given folder. This is working, but in case of error I don't see the reason of the error. In some cases the error is displayed, when the powershell itself throws the error. But when it's a more simple failure such as a primary key conflict, no error is shown.

I've tried it the following way, but this does not work when using the "-InputFile" parameter. Replacing this by the 开发者_运维技巧"-Query" Parameter and the error will be shown.

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
}

The only solution for now is to add the error handling to every sql script. But it's very likely that developers forget to add the errorhandling to their script. I want a more general error handling. Can anybody help?

Thanks, Michael


As per the comments above, read the file into a string variable and use that variable as the value for the -query parameter.

0

精彩评论

暂无评论...
验证码 换一张
取 消

关注公众号