1

我正在尝试使用 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

4

1 回答 1

0

您错过了软件包名称前面的“-File”(或“-f”)选项

它应该像

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

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

于 2016-08-12T00:17:10.313 回答