質問: accessのテーブルをsql serverに自動インポートする方法について 現在sql server2005を使用しております。 別のサーバー内でaccessのテーブルデータが定期的に更新されており、 このデータを利用したシステムをsql server上で作ろうと考えています。 手動でsql serverにaccessのテーブルデータをインポートするやり方は分かりましたが、(データ更新の為に)定期的にインポートする方法がわかりません。 どのように実現すればよいか、サンプルや参考になるhpがありましたら 是非教えていただけないでしょうか?
回答: sql serverのエディションと、accessのバージョンを書いた方がよいです。 (access2003までを想定して書きます) 1) リンクサーバを設定する ・サーバオブジェクト→リンクサーバで作成 ・リンクサーバ名は任意(例えばacc)、「microsoft jet 4.0 ole db provider」を選択し、製品名に「microsoft access」、あとはmdbをフルパス指定するだけでよい。 ・sql server側では「select * from acc...テーブル名」の形式でクエリを実行できる。 (条件)32ビットマシンであること 2) openrowsetを使う ・以下のようなクエリを実行する select a.* from openrowset('microsoft.jet.oledb.4.0','mdbのフルパス';;,テーブル名) as a ・あとはリンクサーバと同じ (条件)32ビットマシンであること。アドホッククエリの実行を許可しておくこと 3) ssisを使う ・sql server integration serviceで取り込み処理をパッケージとして作成する (条件)standard edition以上であること いずれの方法もジョブをsql server agentに登録することで定期実行できます。 1)2)の場合は、truncate table文とinsert select文、3)の場合はパッケージの実行を登録することになります。 expressであれば、sqlcmdを使ったバッチを書いてそれをwindowタスクで実行します。 外部データのアクセス:http://msdn.microsoft.com/ja-jp/library/ms188313(sql.90).aspx openrowset http://msdn.microsoft.com/ja-jp/library/ms190312(sql.90).aspx