Uvádím zde nějaké předpoklady, ale budu předpokládat, že se jedná o problém 32 vs 64 bitů. Pro ověření vyzkoušejte tyto dva příkazy z příkazového řádku (Windows Key, R, cmd.exe nebo Start, Spustit, 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
První spustí váš balíček v 32bitovém režimu, zatímco druhý jej spustí v 64bitovém režimu. Na tom bude záležet, protože vaše ovladače a jakékoli DSN, které jste vytvořili, budou viditelné pouze ve 32/64bitovém světě.
Oprava SSDT
Jakmile zjistíte, kterou z nich potřebujete, pravděpodobně 32bitovou verzi, musíte zajistit, aby váš projekt používal odpovídající dobu běhu. Klikněte pravým tlačítkem na svůj projekt a vyberte Vlastnosti a poté přejděte na kartu Debugging v části Vlastnosti konfigurace.
Po invertování hodnoty Run64BitRuntime předpokládám, že váš balíček bude fungovat v rámci SSDT.
Oprava agenta SQL
Chcete-li změnit bitteness kroku úlohy, budete muset upravit existující úlohu SQL Agent. To bude na kartě Konfigurace a poté na kartě Upřesnit. Zaškrtněte/zrušte zaškrtnutí 32bitového runtime.
Lži a podvod
Pozorní lidé mohou vidět, že dtexec nabízí /X86
volba. Nevěř tomu. Jediný způsob, jak získat správnou bitovou hodnotu, je explicitně zavolat správný dtexec.exe Dokumentace to dokonce říká, ale dokumentaci nikdo nečte.
Tuto možnost používá pouze SQL Server Agent. Tato možnost je ignorována, pokud spustíte obslužný program dtexec na příkazovém řádku.