ここでいくつかの仮定をしますが、これは32ビットと64ビットの問題であると仮定します。確認するには、コマンドプロンプト(Windowsキー、R、cmd.exeまたはスタート、実行、cmd.exe)からこれらの2つのコマンドを試してください。
"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
1つ目はパッケージを32ビットモードで実行し、2つ目は64ビットモードで実行します。これは、ドライバーと作成したDSNが32/64ビットの世界でのみ表示されるため重要です。
SSDTの修正
必要なもの(おそらく32ビットバージョン)を特定したら、プロジェクトが適切なランタイムを使用していることを確認する必要があります。プロジェクトを右クリックして[プロパティ]を選択し、[構成のプロパティ]の下の[デバッグ]タブに移動します。
Run64BitRuntime値を反転した後、パッケージはSSDT内から機能すると思います。
SQLエージェントの修正
ジョブステップのビット数を変更するには、既存のSQLエージェントジョブを編集する必要があります。これは、[構成]タブの下にあり、次に[詳細設定]タブの下にあります。32ビットランタイムをオン/オフにします。
嘘と欺瞞
注意深い人々は、dtexecがオプションを提供していることに気付くかもしれません/X86
。信じないでください。正しいビット数を取得する唯一の方法は、正しいdtexec.exeを明示的に呼び出すことです。ドキュメントには多くのことが書かれていますが、誰もドキュメントを読んでいません。
このオプションは、SQLServerエージェントでのみ使用されます。コマンドプロンプトでdtexecユーティリティを実行する場合、このオプションは無視されます。