Вы можете использовать код выхода sqlcmd
, чтобы определить, произошла ошибка или нет.
$output = sqlcmd -S ServerName -i "MyAwesome.sql" -v parameter1="par1"
if ($LASTEXITCODE -ne 0) {
Write-Error $output
}
Если код выхода не равен 0, вы обычно найдете сообщение об ошибке либо в stdout
, либо в stderr
.Вы можете поместить оба в выходную переменную следующим образом:
$output = sqlcmd -S ServerName -i "MyAwesome.sql" -v parameter1="par1" 2>&1
Если в stderr
что-то было, оно будет объединено с тем, что есть в stdout
.
В вашем скрипте SQLВы также захотите внедрить лучшие методы обработки ошибок, такие как использование конструкций try / catch и использование транзакций, где это необходимо.
http://msdn.microsoft.com/en-us/library/ms179296.aspx
Если вы поймали исключение в своем скрипте SQL, выведитесообщение об ошибке и установите код возврата, чтобы вы могли обработать ошибку в PowerShell.