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