我寫了一個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'
如果($ LASTEXITCODE -ne 0) { throw「Script failed。Return code is $ LASTEXITCODE。」 }
失敗的表面上隨機的性質造成了很大的痛苦。我無法確定錯誤是否是SQL2008,SQLCMD(儘管我得到與osql.exe相同的行爲)或以某種方式耦合到了powershell。
sqlcmd正在執行的實際sql似乎與問題無關,因爲sql腳本會執行一段時間然後失敗。
相同的故障已經看到許多不同的工作站和服務器(Win7的,Win2003的和的Win2008)
有關如何跟蹤下來將非常感謝任何指導。
可能是一個已知問題:[see:connect.microsoft.com](http://connect.microsoft.com/PowerShell/feedback/details/496326/stability-problem-any-application-run-fails-with-lastexitcode-1073741502#details) – 2012-01-04 14:08:04
@ user978511 - 它不是特定於應用程序的。請注意jon的鏈接。 – JNK 2012-01-04 14:21:08
@jon Z.感謝您的鏈接。很好的發現。很高興我在這個瘋狂中並不孤單。 – 2012-01-04 14:52:04