Access 97 データベースを使用して情報を格納する古いシステムがあります。毎日、90 ほどのテーブルから SQL Server 2008 データベースにデータをコピーしたいと考えています。SS2008 で定義されたテーブルが既にあります。
テーブルごとに個別のボックスラインボックスを持つ、同じように古い DTS ジョブがあります。行やボックスではなく、コードで記述された、保守が容易なメソッドを使用したいと思います。(はい、SSIS の行とボックスが XML に変換されることは知っていますが、それを読み書きするのはちょっと難しいです。)
SS2008 サーバーが 64 ビット プロセスとして実行されているため、Linked Server または OPENROWSET を使用できず、OLEDB Jet ドライバーを使用できません。OLEDB MSOffice ACE 12.0 ドライバーは 64 ビットですが、(Microsoft によると) スレッドセーフではないため、データベース サーバーで使用することは想定されていません。また、広範な調査にもかかわらず、SS2008 内で動作させることができません (「インストール可能な ISAM が見つかりませんでした」)。SSIS などの 32 ビット プログラムで OLEDB Jet を使用して Access テーブルを読み取ることができます。
そのため、Access mdb/mdw ファイルから SS2008 にテーブルをコピーするための、モダンで非ボックス アンド ラインのエレガントな 32 ビット ソリューションを探しています。
私はこれを行うことができます:
- 単一の T-SQL スクリプト
- イントロスペクションを行ってテーブル構造を決定し、各テーブルに対して SQL を実行する C# のこと
- いくつかの魔法の「このOLEDBからそのSQL Serverにすべてのテーブルをコピーする」パッケージ
この質問にはいくつかの詳細な重複があります (アクセス データベースを SQL サーバーに定期的にコピーする、アクセス テーブルを SQL サーバーに移行する - 初心者)、OPENROWSET/Linked Server を非オプションにする 32 ビットの制限に対処するものはありません。