在这里做一些假设,但我将假设这是一个32对64位的问题。要进行验证,请从命令提示符处尝试这两个命令(Windows Key,R,cmd.exe或Start,Run,cmd.exe)
"C:\Program Files (x86)\Microsoft SQL Server\110\DTS\Binn\dtexec.exe" /file C:\myPackage.dtsx "C:\Program Files\Microsoft SQL Server\110\DTS\Binn\dtexec.exe" /file C:\myPackage.dtsx
第一个将以32位模式运行程序包,而第二个以64位模式运行程序包。这很重要,因为您的驱动程序和您创建的任何DSN仅在32/64位世界中可见。
一旦确定了所需的版本(可能是32位版本),就需要确保项目使用适当的运行时。右键单击项目并选择Properties,然后导航到Configuration Properties下的Debugging选项卡。
在反转Run64BitRuntime值之后,我假设您的包将在SSDT内工作。
您需要编辑现有的SQL代理作业以更改作业步骤的比特。这将位于“配置”选项卡下,然后位于“高级”选项卡下。选中/取消选中32位运行时。
细心的人可能会看到 DTEXEC 提供一个 /X86 选项。不要相信。获得正确位的唯一方法是显式调用正确的dtexec.exe文档甚至说尽可能多但没有人阅读文档。
/X86
此选项仅供SQL Server代理使用。该选项被忽略 如果您在命令提示符下运行dtexec实用程序。