Тук правя някои предположения, но ще предположа, че това е 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-битовия свят.
Коригиране на SSDT
След като определите коя ви е необходима, вероятно 32-битова версия, ще трябва да се уверите, че вашият проект използва подходящото време за изпълнение. Щракнете с десния бутон върху вашия проект и изберете Свойства и след това отидете на раздела Отстраняване на грешки под Свойствата на конфигурацията.
След като инвертирате стойността Run64BitRuntime, предполагам, че вашият пакет ще работи от SSDT.
Коригиране на SQL агент
Ще трябва да редактирате съществуващото задание на SQL агент, за да промените битовостта на стъпката на заданието. Това ще бъде в раздела Конфигурация и след това в раздела Разширени. Поставете отметка за 32-битовото време за изпълнение.
Лъжи и измама
Наблюдателните хора може да видят, че dtexec предлага /X86
опция. Не вярвайте. Единственият начин да получите правилната битност е изрично да извикате правилния dtexec.exe. Документацията дори казва толкова, но никой не чете документацията.
Тази опция се използва само от SQL Server Agent. Тази опция се игнорира, ако стартирате помощната програма dtexec в командния ред.