我有一个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脚本中。但是开发人员很可能忘记将错误处理添加到他们的脚本中。我想要一个更一般的错误处理。有人可以帮忙吗?
谢谢, 迈克尔
答案 0 :(得分:1)
根据上面的注释,将文件读入字符串变量并将该变量用作-query参数的值。