1

我試圖執行一個使用DTExec.exe作爲批處理的一部分的dtsx腳本。下面的命令行腳本工作:DTExec.exe CheckFile和驗證失敗

"C:\Program Files\Microsoft SQL Server\130\DTS\Binn\DTExec.exe" -File "\\\\vm-to-somewhere\d$\Projects\test.dtsx" 

但是,如果我嘗試實際運行該腳本之前運行的test.dtsx文件檢查/檢驗,它失敗的6退出代碼(這相當於:該實用程序在命令行中遇到了語法或語義錯誤的內部錯誤)。

$ "C:\Program Files\Microsoft SQL Server\130\DTS\Binn\DTExec.exe" -CheckFile "\\\\vm-to-somewhere\d$\Projects\test.dtsx" 
$ "C:\Program Files\Microsoft SQL Server\130\DTS\Binn\DTExec.exe" -Validate "\\\\vm-to-somewhere\d$\Projects\test.dtsx" 

Returns: Option "\\\\vm-to-somewhere\d$\Projects\test.dtsx" is not valid. 

這可能只是我俯瞰一個簡單的錯誤,我在想,如果這是一件用反斜槓,但第一個命令運行正常,因此沒有意義。另外,如果有人可以向我指出-CheckFile和-Validate之間的區別,那可能會幫助我決定在我的腳本中使用哪一個。我只需要知道在執行它之前dtsx是否正常工作,因爲需要3小時才能運行,我寧願早點找出它。

參考文獻:https://msdn.microsoft.com/en-us/library/hh231187(v=sql.110).aspx

+0

'CheckFile'不檢查dtsx文件。它將路徑設置爲檢查點文件,您可以使用該文件重新啓動程序包(對於三小時的程序包可能非常方便)。但是它只有在你的軟件包中專門構建了檢查點邏輯時纔有用。我想你沒有,所以不要打擾它。您可以使用程序DTExecUI.exe從GUI爲您構建命令行。如果您的軟件包存在實際的驗證問題,那麼無論如何它都可能在執行的第一分鐘內拋出。 –

回答

0

你錯過了 「 - 文件」(或 「F」)就在你的包名稱的前面選項

應該是這樣

DTExec.exe -f "<package name with path>" -Validate 

注意,包可能有一個配置延遲驗證,所以-Validate選項不會驗證具有延遲驗證的項目。有一些選項可以強制驗證延遲驗證的項目,但這是一個單獨的主題。

+0

是的,它現在的作品,知道這是愚蠢的東西!我會研究延遲驗證,但感謝你的這:) – weiji14