Gør nogle antagelser her, men jeg vil antage, at dette er et 32 vs 64 bit problem. For at bekræfte, prøv disse to kommandoer fra en kommandoprompt (Windows-tast, R, cmd.exe eller Start, Kør, 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
Den første kører din pakke i 32 bit-tilstand, mens den anden kører den i 64-bit-tilstand. Dette kommer til at betyde noget, da dine drivere og eventuelle DSN'er, du har oprettet, kun vil være synlige i 32/64 bit verdenen.
Lettelse af SSDT
Når du har identificeret, hvilken du har brug for, sandsynligvis 32-bit version, skal du sikre dig, at dit projekt bruger den passende kørselstid. Højreklik på dit projekt og vælg Egenskaber, og naviger derefter til fanen Debugging under Konfigurationsegenskaber.
Efter at have inverteret Run64BitRuntime-værdien, antager jeg, at din pakke vil fungere inde fra SSDT.
Rettelse af SQL Agent
Du bliver nødt til at redigere det eksisterende SQL Agent-job for at ændre bitedness af jobtrinnet. Dette vil være under fanen Konfiguration og derefter under fanen Avanceret. Marker/fjern markeringen af 32-bit runtime.
Løgn og bedrag
Observante folk kan se, at dtexec'en tilbyder en /X86
mulighed. Tro det ikke. Den eneste måde at få den korrekte bithed på er eksplicit at kalde den korrekte dtexec.exe. Dokumentationen siger endda så meget, men ingen læser dokumentation.
Denne mulighed bruges kun af SQL Server Agent. Denne mulighed ignoreres, hvis du kører dtexec-værktøjet ved kommandoprompten.