SQL Server 2008 Expressを使用して作成したデータベースが表示されない問題について

このQ&Aのポイント
  • SQL Server 2008 Express のマネジメントスタジオで作成したデータベースを、Visual Basic 2008 Express で使用するためにデータベースエクスプローラで表示させたいですが、表示されません。
  • 接続の追加で直接mdfファイルを開こうとすると、エラーメッセージ「オペレーティングシステムエラー32: プロセスはファイルにアクセスできません。別のプロセスが使用中です。アタッチできませんでした。同じ名前のデータベースが既に存在するか、指定されたファイルを開けないか、UNC 共有に配置されています。」が表示されます。
  • 初心者のため、分かりやすく教えていただきたいです。
回答を見る
  • ベストアンサー

作成したDBを使いたい

SQL Server 2008 Express のマネジメントスタジオで簡単なデータベースとテーブルを作りました。それをVisual Basic 2008 Express で使うためにデータベースエクスプローラで表示させたいのですが表示されません。 なので接続の追加で直接mdfファイルを開こうとしてみると、 「オペレーティングシステムエラー32: プロセスはファイルにアクセスできません。別のプロセスが使用中です。アタッチできませんでした。同じ名前のデータベースが既に存在するか、指定されたファイルを開けないか、UNC 共有に配置されています。」 と表示されます。 初心者なので分かりやすく教えて欲しいです。 よろしくお願いしますm(__m)

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

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

Visual Studio Expressは2005もそうでしたが、2008でも接続方法が限られるようですね。 SQL Serverにつなぐためには、質問者さんが試された方法(アタッチといいます)しかありません。 これは、SQL Serverから「切り離した」データベースファイルに都度接続するよう設定する方法です。 SQL Serverで作成したデータベースファイルは、SQL Serverが稼働している(=サービスが上がっている)間は、SQL Serverが「常に使用中」という状態になります。したがって、切り離さないといけません。 切り離すためには、SQL Server Management Studioで対象のデータベースを選択して右クリックし、「タスク」=>「デタッチ」を選択します。 その後で再度接続を試してみてください。 もちろん、切り離した状態ですから、同時にSQL Server Management Studioからは見ることはできません。 Visual Studio Expressではこの方法しかないので、有償のEditionを買わない限り仕方ありません。

MenPin
質問者

お礼

一度デタッチする必要があるのですね。 無償だと色々制約があるみたいですね。 ありがとうございました。

関連するQ&A

  • VB.NETでDBへ再度接続したいのですが

    Windows7 Home(64bit) Visual Basic 2010 Proで開発を行っています。 データベースのプログラム作成において、サーバーエクスプローラーよりSQL Server 2008 R2で作成したDBを接続してプログラミングしていましたが、諸事情により、DBファイルは別の場所に保存して、サーバーエクスプローラーで「削除」した後に、再度同じDBファイルにアタッチを試みると「物理ファイル "xxxx.mdf"を開けません。オペレーティングシステムエラー5:"5(アクセスが拒否されました。)ファイルxxxx.mdfの自動的に名前がつけられたデータベースをアタッチできませんでした。同じ名前のデータベースが既に存在するか、指定されたファイルを開けないか、UNC共有に配置されています」と表示され、接続できません。どこかに過去のDBの情報が記録されているのではないかと思うのですが、どのような対処をすれば再度同じDBへ接続できるでしょうか? 宜しくお願い致します。

  • アタッチができない

    業務システムから抜き出したaaaa.mdfとaaaa.ldfファイルがあり、これをSQL Server2008R2 Expressをインストールしたパソコンで開くことをトライしています。 しかし、SQL Server Management Studioを起動してテーブルにアタッチしても、「aaaa.mdfはプライマリーデータベースファイルではありません」のエラーが出てしまいます。 必要なのはaaaa.mdf内のテーブルにアクセスできれば良いだけなのですが、どの様にすれば良いのでしょうか。

  • SQL Server Management studioで

    SQL Server Management studioで 新しくデータベース(MyDatabase)、テーブル(NameTable)を作成してみたんですが、 Visual Web developer 2010 Express のデータベースエクスプローラから MyDatabase.mdfを開こうとしても「このファイルは使用されています。…」 というような文言が出てきて、呼び出せません。 Vista,SQL Server 2008,Visual Web developer 2010 Expressの環境です。 どなたか教えて下さい。

  • SQL Serverのデータ格納場所

    SQL Serverのデータ格納場所 Visual Studioを勉強しだしました。データベースのところで、mdfファイル、ndfファイルという言葉が出てきました。 ネットで色々調べていますが、いまいちわからないのでお教えください。 参考にしたURL: http://itpro.nikkeibp.co.jp/article/COLUMN/20070201/260338/ ■mdfファイルとはSQL Server Express Editionのデータベースデータファイルとあります。 Express Editionではない、SQL Server 2012 Standardなどのデータベースは違う拡張子のデータベースファイルになるのでしょうか? もしそうなら、何故Express Edtionと有料バージョンではデータの持ち方が違うのでしょうか? ■mdfファイルを違うパソコンで開きたいとします。Accessみたいに、ファイルをコピーして別PCに持って行けばファイルはひらけるものなのでしょうか? ■mdfファイルのデータをAccessにインポートできるのもなのでしょうか? 当方、Accessがわかる程度で、その他のデータベース関連のソフトウェアはさわったこともありません・・・ 宜しくお願い致します。

  • SQLサーバー2005とVisual Studio 2008 Expr

    SQLサーバー2005とVisual Studio 2008 Express Edition を使用して、データベースにアクセスしたいのですが、Visual Studioで新しい項目の追加→「サービス ベースのデータ アクセス用の空の SQL Server データベース」→追加として、Database1.mdfを新規作成しようとすると、以下のエラーが出てしまいます。 エラー:ファイルまたはアセンブリ 'Microsoft.SqlServer.Management.Sdk.Sfc, Version=10.0.0.0, Culture=neutral, PublicKeyToken=89845dcd8080cc91'、またはその依存関係の 1 つが読み込めませんでした。指定されたファイルが見つかりません。 解決方法が分からなくて困っております。ご存知の方、お手数ですがご指導いただけないでしょうか。 よろしくお願い致します。 <環境> Os: Win Xp SQLサーバー2005 Visual Studio 2008 Express Edition

  • SQL VC#でのDBアプリ作成方法について

    Visual C# 2010 Express(WPFアプリケーション)とSQL Server 2012 Expressでツール(データベースアプリケーション)を作成していますが,いまいち作り方を理解しておらず合っているのかわからないので,教えていただきたいです。 作成しているツールは会社の課内で使用します。 最終的には課内サーバーに保存してあるDBファイルに各社員のパソコンから作成したツール経由でDBへ読み書きします。ツールの開発は私のパソコンで行います。 課内サーバはWindowsServer2010でIPアドレスを仮に\\11.22.33.444とします。 各社員のパソコンはWin7でIPアドレスを仮に\\11.22.33.445とします。 なお本文では下記のように略して記載します。 SQL Server 2012 Express:sqlserver SQL Server Management Studio Express 2012:SSMS Visual C# 2010 Express:VC# ■私が行った作成手順 ※サーバで操作 (1)サーバにsqlserverとSSMSをインストール (2)KANAISQLという名前でインスタンスを作成。Windows認証。 (3)SSMSのセキュリティでログインユーザの中に自分のドメインユーザ名を登録 (4)SSMSで「E:\…DATA」の中に:データベースを作成(BOOKDB.mdf)。テーブル「BOOKInfo」を作成。ついでに1レコード作成。 (5)SSMSでBOOKDB.mdfをデタッチ (6)BOOKDB.mdfを「E:\…booksDB」にコピペ ※開発PCで操作 (7)パソコンにVC#,sqlserver,LocalDB,SSMSをインストール (8)SQLEXPRESSという名前でインスタンスを作成。Windows認証。 (9)VC#でWPFアプリケーションを新規作成 (10)[データ]メニューの[新しいデータ ソースの追加]→[データベース]→[データセット]→[\\11.22.33.444\…booksDB\BOOKDB.mdf]を指定→テスト接続を実行→接続OK →「ローカルにデータをコピーしますか?」といった画面で「OK」をクリック (11)データソースナビゲーションパネルから「BOOKInfo」をDataGridを指定してユーザーフォームにドラッグ&ドロップしてバインド。 (12)デバッグしてみる→正常にレコードが表示された。 (13)Datasetをデザイナーから編集でInsertクエリを作成 (14)ユーザフォームにボタンを追加してInsertクエリとUpdateクエリを実装 (15)デバッグとリビルドしてexeを実行してみる。→ツール上では正常に表示+テーブル追加された。 (16)DBファイルを確認してみた。開発PC内のデバッグフォルダリリースフォルダ内にある「BOOKDB.mdf」は更新されていた。 ※サーバで操作 (17)サーバの[E:\…booksDB\BOOKDB.mdf]が更新されているか確認してみた。 →更新されていない。(6)の時から変更なし。 ■わからないこと 1.ツールからサーバのDBへデータの変更を反映させるためにはどうしたらよいのでしょうか。 2.またツール完成後に各社員がこのツールを使用する場合は,全員sqlserverとLocalDBをパソコンにインストールしなければならないものなのでしょうか。 詳しい方ご教授御願いいたします。

  • SQLServer2005Express のインストールと初期設定について

    SQLServer2005ExpressをOS:XPにインストール インストール条件は揃っているものとします。 やりたい事は、SQLServer2005Expressのインストールと データベースの設定です(テーブル、フィールド、初期データ) これを出来るだけ簡単な操作で済ませたいと思います。 1.SQLServer2005Expressのインストールは、コマンドラインから 実行可能な事が分かり、テストし、上手くいきました。 バッチファイルを準備し、ダブルクリックでインストール完了 2.データベース設定 テーブル、フィールド設定、 データ作成を簡単にやる方法を 探しています。 SQL Server Management Studio Expressのインストール後、 MDFファイルのアタッチでは、操作が煩雑すぎます。 出来れば、Severインストール時と同じように、1ファイルのダブルクリックで 完了させたいのですが、方法はあるでしょうか?

  • SQL2008 Northwindがアタッチできません(><)

    SQL Server 2008の自習書 ■SQL Server 2008 Reporting Services サンプルスクリプト内にあるNorthwindJ.mdfをアタッチしようとするとエラーが出てアタッチが失敗します。 エラー内容: Tranzact-SQLステートメントまたはバッチの実行中に例外が発生しました。(Microsoft.SqlServer.ConnectionInfo) 物理ファイルC:\SQL08_SelfLearning09_SSRS\NorthwindJ.mdfを開けません。オペレーティングシステムエラー 5:"5(アクセス拒否)" 使用環境: Vista Ultimate (64-bit) SQL Server Developer Edition (64-bit) なにが原因なのかぜんぜんわからないので、詳しい方、ご教授のほどよろしくお願いいたします。

  • mdfファイルの残骸について

    Microsoft SQL Server 2005 Developer Editionを使用しています。 SQL Server Management Studio > オブジェクトエクスプローラ > データベース に使用中のDB一覧が表示されています。 エクスプローラでmdfファイルが保存されているフォルダを確認すると 上記にないデータベース名のmdfファイルがあります。 以前、作成して削除したDBのmdfファイルです。 質問です。 (1)オブジェクトエクスプローラに表示されず、mdfファイルが残っているのはどういう状況でしょうか。 私はいつもSQL Server Management Studioで削除したいDBを選択して、右クリック>削除でDBを削除していますが、 mdfファイルが残ることもあるのでしょうか。 (2)ファイルサイズが非常に大きいため、上記状態のmdfファイルを削除したいのですが、 エクスプローラ上から削除しても問題ないのでしょうか。 削除前に「このmdfファイルは現在使用されていない」ことを確認したいのですが、 どのような方法があるのでしょうか。 前任者からDB管理を引き継いだのですが、上記状態で困っています。 既に前任者はいないため、聞くことが出来ません。 よろしくお願いします。

  • SQL Server 2005(2008)とVB.netでのデータベース共有

    現在vb.net 2008 と SQL Server 2005を使ってアプリケーションを作成しています。 vbの方のソリューションエクスプローラーでデータベースを作成し、現在まで稼働させてきましたが、テーブル名の変更などができないなど不便な点が気になり、そろそろSQL Serverで管理したいと考えています。 そこでいろいろ試行錯誤してやってみたのですが、SQL Server側でアタッチしようとすると、ファイル(xxxxx.mdf)のパーミッションの関係で「アクセスが拒否されました」と出てしまいます。 そこでファイルのパーミッションをSQL Serverでもアクセスできるように変更したところ、その状態でアタッチもテーブル名の変更もできるのですが、今度はSQL Server側にパーミッションが変更されるようで、vbからアクセスできないようになってしまいました。 両者からアクセスできるようにするのはどうすればいいのでしょうか。 セキュリティの面もしっかりした状態で実現させたいと思っています。 現在の環境は以下の通りです。 SQL Server Express 2005 Visual Basic 2008 Professional (SQL Server 2005 Developmentも使えます) Windows Vista Ultimate (64bit) SQL Serverはwindows認証で使っていますが、不都合があればSQL Server認証に変更も可能です。