我编写了一个 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 耦合。
sqlcmd 正在执行的实际 sql 似乎与问题无关,因为 sql 脚本会执行一段时间然后失败。
在许多不同的工作站和服务器(Win7、Win2003 和 Win2008)上都出现了相同的故障
任何有关如何追踪此问题的指导将不胜感激。