Я написал сценарий powershell для вызова sqlcmd.exe для выполнения сценария sql на удаленном сервере sql. Сценарий powershell проверяет $ LASTEXITCODE. Если $ LASTEXITCODE не равен нулю, я выкидываю «Сценарий не выполнен. Код возврата - $ LASTEXITCODE.»
Этот сценарий используется несколько раз для выполнения различных сценариев sql и является частью цепочки сценариев powershell, запускаемых во время развертывания.
Сценарий в большинстве случаев работает нормально, но случайно завершается с кодом возврата -1073741502 .
Это начало происходить только после обновления до SQL2008, и я не могу воспроизвести его, запустив один сценарий powershell вручную или сценарий sql cmd вручную.
Это команда powershell:
& 'sqlcmd.exe' -S $ databaseServer -r -b -E -i '$ scriptFullPath'
if ($ LASTEXITCODE -ne 0)
{
throw "Сценарий не выполнен. Код возврата - $ LASTEXITCODE."
}
Казалось бы, случайный характер неудачи вызывает много боли. Я не могу определить, является ли ошибка SQL2008, SQLCMD (хотя я получаю такое же поведение с osql.exe) или каким-то образом связана с powershell.
Фактический sql, который выполняет sqlcmd, похоже, не связан с проблемой, поскольку сценарий sql некоторое время будет работать нормально, а затем завершится ошибкой.
Одна и та же ошибка наблюдалась на многих рабочих станциях и серверах (Win7, Win2003 и Win2008)
Будем весьма благодарны за любые указания о том, как отследить это.