DTExec.exe CheckFile和Validate失败

时间:2016-08-11 23:29:13

标签: sql-server sql-server-2012 command-line-arguments exit-code dtexec

我尝试使用DTExec.exe作为批处理过程的一部分来执行dtsx脚本。以下命令行脚本有效:

"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

1 个答案:

答案 0 :(得分:0)

你错过了" -File" (或" -f")选项就在您的包名称前面

应该是

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

请注意,程序包可能具有已配置的延迟验证,因此-Validate选项不会验证具有延迟验证的项目。有一些选项可以强制验证延迟验证的项目,但这是一个单独的主题。