Ik maak hier enkele aannames, maar ik ga ervan uit dat dit een 32 versus 64 bit-probleem is. Probeer deze twee opdrachten vanaf een opdrachtprompt om dit te verifiëren (Windows-toets, R, cmd.exe of Start, Uitvoeren, 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
De eerste voert uw pakket uit in 32-bits modus, terwijl de tweede het in 64-bits modus uitvoert. Dit is belangrijk omdat je stuurprogramma's en eventuele DSN's die je hebt gemaakt alleen zichtbaar zullen zijn in de 32/64-bits wereld.
SSDT repareren
Als je eenmaal hebt vastgesteld welke je nodig hebt, waarschijnlijk een 32-bits versie, moet je ervoor zorgen dat je project de juiste runtime gebruikt. Klik met de rechtermuisknop op uw project en selecteer Eigenschappen en navigeer vervolgens naar het tabblad Foutopsporing onder Configuratie-eigenschappen.
Na het omkeren van de Run64BitRuntime-waarde, neem ik aan dat je pakket werkt vanuit SSDT.
SQL-agent repareren
U moet de bestaande SQL Agent-taak bewerken om de bittedness van de taakstap te wijzigen. Dit staat onder het tabblad Configuratie en vervolgens onder het tabblad Geavanceerd. Schakel de 32-bits runtime in/uit.
Leugens en bedrog
Oplettende mensen kunnen zien dat de dtexec een /X86
. biedt optie. Geloof het niet. De enige manier om de juiste bit-ness te krijgen, is door expliciet de juiste dtexec.exe aan te roepen. De documentatie zegt zelfs zoveel, maar niemand leest de documentatie.
Deze optie wordt alleen gebruikt door SQL Server Agent. Deze optie wordt genegeerd als u het hulpprogramma dtexec vanaf de opdrachtprompt uitvoert.