- ベストアンサー
SQLServer2005でインポートする方法について
SQL Server 2005 Management Studio Expressで、ACCESS2000のデータをインポートしたいのですがどうすればいいですか? ご教授お願いします。
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
ざっと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でできます。
その他の回答 (1)
- jamshid6
- ベストアンサー率88% (591/669)
そうですか。パスワードでもかかっていたか、パスが間違っているときに出るメッセージですね。 Jet4.0は当然Access2000も対応していますよ。 ついでに、コメント書くときは通常試してから書きますしね。
お礼
ありがとうございました。 1)では補足のとおりエラーになったのですが、 3)でうまくできました。 なんとか、やりたいことはできたのでよかったのですが、一つ質問があります。 Microsoft.Jet.OLEDB.4.0はACCESS2000を対応しているのでしょうか?
補足
お返事ありがとうございます。 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"は正しくありません。 パス名に間違いがないことと、ファイルが置かれたサーバーに接続していることを確認してください。" が返されました。