こんにちはゲストさん。会員登録(無料)して質問・回答してみよう!

解決済みの質問

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

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

投稿日時 - 2009-01-13 17:37:10

QNo.4627431

すぐに回答ほしいです

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

ざっと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でできます。

投稿日時 - 2009-01-13 18:21:58

補足

お返事ありがとうございます。
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"は正しくありません。
  パス名に間違いがないことと、ファイルが置かれたサーバーに接続していることを確認してください。"
  が返されました。
  

投稿日時 - 2009-01-14 10:17:57

お礼

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

投稿日時 - 2009-01-14 11:57:48

このQ&Aは役に立ちましたか?

3人が「このQ&Aが役に立った」と投票しています

-広告-
-広告-

回答(2)

ANo.2

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

投稿日時 - 2009-01-14 14:00:52

-広告-
-広告-
-広告-
-広告-