• ベストアンサー

SQLServer2005でインポートする方法について

SQL Server 2005 Management Studio Expressで、ACCESS2000のデータをインポートしたいのですがどうすればいいですか? ご教授お願いします。

質問者が選んだベストアンサー

  • ベストアンサー
  • jamshid6
  • ベストアンサー率88% (591/669)
回答No.1

ざっと4つくらい思い浮かびます。 1) リンクサーバを設定する  ・サーバオブジェクト→リンクサーバで作成  ・リンクサーバ名は任意(例えばACC)、「Microsoft jet 4.0 OLE DB Provider」を選択し、製品名に「Microsoft Access」、あとはMDBをフルパス指定するだけでよい。  ・SQL Server側では「SELECT * FROM ACC...テーブル名」の形式でクエリを実行できるので、SELECT INTO文でSQL Serverのテーブルにコピーすればよい。  (条件)32ビットマシンであること 2) OPENROWSETを使う ・以下のようなクエリを実行する   SELECT a.* FROM OPENROWSET('Microsoft.Jet.OLEDB.4.0','MDBのフルパス';;, テーブル名) AS a  ・あとはリンクサーバと同じ  (条件)32ビットマシンであること。アドホッククエリの実行を許可しておくこと 3) Access側にリンクテーブルを張り、Access側でリンクテーブルにINSERTする  ・説明不要でしょう。 4) SQL Server Management Studio Expressの2008をインストールする ・SSMSE2005はインポート・エクスポートはサポートしていませんが、SSMSE2008はサポートしています。SQL Server 2005に対しても問題なく操作でき、同居も可能です。  ・SSMSE2008をインストールしてやると、インポート・エクスポートは全部GUIでできます。

noname#208236
質問者

お礼

ありがとうございました。 1)では補足のとおりエラーになったのですが、 3)でうまくできました。 なんとか、やりたいことはできたのでよかったのですが、一つ質問があります。 Microsoft.Jet.OLEDB.4.0はACCESS2000を対応しているのでしょうか?

noname#208236
質問者

補足

お返事ありがとうございます。 1)を試みてみたのですが、下記のエラーようなが発生し、リンクサーバーを設定することができません。 調べてみたのですがよくわからなかったのでもう一度ご教授お願いできますでしょうか? <エラー内容> "リンクサーバーは作成されましたが接続テストにしっぱいしました。リンクサーバーを保持しますか?" 追加情報: →Transact-SQL ステートメントまたはバッチの実行中に例外が発生しました。  (Microsoft.SqlServer.Express.ConnectionInfo)  →リンクサーバー"ACC"のOLE DBプロバイダ"Microsoft.Jet.OLEDB.4.0"のデータソースオブジェクトを初期化できません。   リンクサーバー"ACC"のOLE DBプロバイダ"Microsoft.Jet.OLEDB.4.0"から、メッセージパス   "C:\Program Files\ActiveReportsNET3\Data\Nwind.mdb"は正しくありません。   パス名に間違いがないことと、ファイルが置かれたサーバーに接続していることを確認してください。"   が返されました。   

その他の回答 (1)

  • jamshid6
  • ベストアンサー率88% (591/669)
回答No.2

そうですか。パスワードでもかかっていたか、パスが間違っているときに出るメッセージですね。 Jet4.0は当然Access2000も対応していますよ。 ついでに、コメント書くときは通常試してから書きますしね。

関連するQ&A