質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

ただいまの
回答率

90.13%

SQL Server2016で古いmdf読み込み

解決済

回答 2

投稿

  • 評価
  • クリップ 0
  • VIEW 5,509

下記URLを試してみようと、SQL Server2016 ExpressPUBS.MDF
をアタッチしようとしたら「データベースのインポート中にエラーが発生しました。」というエラーになりました。
相当昔の記事なので、最新のSQL Serverでは読み込めないのでしょうか?

10 行でズバリ !! 概念モデルの作成 (EDM) (C#)

 エラー内容詳細

サーバー '*\SQLEXPRESS' のデータベースのインポートに失敗しました。  (Microsoft.SqlServer.Smo)
物理ファイル "C:\Work\DB\pubs.mdf" を開けません。オペレーティング システム エラー 5: "5(アクセスが拒否されました。)"。
CREATE DATABASE が失敗しました。一覧されたファイル名の一部を作成できませんでした。関連するエラーを確認してください。 (Microsoft SQL Server、エラー: 5120)

 補足

最初は記事の通りに進めようとしましたが、画面が若干2016と違いますし、エラーでうまくいかなかったので、まずはManagement Studioからpubsデータベースを開くところから始めようとしています。

  • 気になる質問をクリップする

    クリップした質問は、後からいつでもマイページで確認できます。

    またクリップした質問に回答があった際、通知やメールを受け取ることができます。

    クリップを取り消します

  • 良い質問の評価を上げる

    以下のような質問は評価を上げましょう

    • 質問内容が明確
    • 自分も答えを知りたい
    • 質問者以外のユーザにも役立つ

    評価が高い質問は、TOPページの「注目」タブのフィードに表示されやすくなります。

    質問の評価を上げたことを取り消します

  • 評価を下げられる数の上限に達しました

    評価を下げることができません

    • 1日5回まで評価を下げられます
    • 1日に1ユーザに対して2回まで評価を下げられます

    質問の評価を下げる

    teratailでは下記のような質問を「具体的に困っていることがない質問」、「サイトポリシーに違反する質問」と定義し、推奨していません。

    • プログラミングに関係のない質問
    • やってほしいことだけを記載した丸投げの質問
    • 問題・課題が含まれていない質問
    • 意図的に内容が抹消された質問
    • 広告と受け取られるような投稿

    評価が下がると、TOPページの「アクティブ」「注目」タブのフィードに表示されにくくなります。

    質問の評価を下げたことを取り消します

    この機能は開放されていません

    評価を下げる条件を満たしてません

    評価を下げる理由を選択してください

    詳細な説明はこちら

    上記に当てはまらず、質問内容が明確になっていない質問には「情報の追加・修正依頼」機能からコメントをしてください。

    質問の評価を下げる機能の利用条件

    この機能を利用するためには、以下の事項を行う必要があります。

回答 2

checkベストアンサー

+2

質問者さんは、チュートリアルを始める前の段階で、まず SQL Server 2016 Express の既定のインスタンス(または名前付きインスタンス)に DB をアタッチし、それに SSMS を使って接続することをトライ中と理解しています。

物理ファイル "C:\Work\DB\pubs.mdf" を開けません。

MSDN ライブラリによると、"MSSQLServer サービスの開始アカウント: アカウントは、データまたはログ ファイル (.mdf、.ndf、.ldf) が常駐するフォルダーに対するフル コントロール権限を持っている必要があります。" ということですが、Work フォルダに対して必要な権限がないのでは?

詳しくは以下の記事を見てください。

DB のアタッチ
http://surferonwww.info/BlogEngine/post/2010/09/13/ACL-setting-and-database-attaching-in-SQL-Server.aspx

SQL Server のアカウントに Work フォルダに対する権限を与えるより、SQL Server のインストール時に自動的に必要な権限が与えられる Data フォルダに pubs.mdf をコピーして、それをアタッチした方が簡単ですので、そうすることをお勧めします。

以下、アタッチに失敗するということとは関係ないことですが、注意すべきことを書いておきます。

(1) SQL Server の Express 版をインストールすると、デフォルトでは「名前つきインスタンス」となり、インスタンス名は SQLEXPRESS になります。TCP/IP で接続する際は SQL Server Browser が必要になります(開発環境で共有メモリを使う場合は不要ですが)。

詳しくは以下の記事を見てください。

SQLEXPRESS は「名前つきインスタンス」名
http://surferonwww.info/BlogEngine/post/2012/11/12/express-edition-uses-named-instance-by-defualt.aspx

(2) 参考にされている記事は SQL Server 2008 Express で利用できるユーザーインスタンスに DB をアタッチしてそれに接続することを前提に考えられています。

ユーザーインスタンスが何か不明でしたら以下の記事を見て下さい。

ユーザーインスタンス
http://surferonwww.info/BlogEngine/post/2010/09/14/User-Instance-of-SQL-Server-Express.aspx

今はユーザーインスタンスは非推奨になっており(まだ使うことはできますが)、VS2015 などの新しい環境では LocalDB を使うようにウィザードが動くかもしれません。チュートリアルに進む際はその点に注意してください。 

投稿

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

  • 2017/05/13 14:02

    `C:\Program Files\Microsoft SQL Server\MSSQL13.SQLEXPRESS\MSSQL\DATA`にDBを放り込んでアタッチしたら以下のエラーになってしまいました。

    データベース 'pubs' をアップグレードできません。
    製品版でないバージョン (539) は、このバージョンの SQL Server ではサポートされません。
    このバージョンの sqlservr.exe と互換性がないデータベースは開けません。
    データベースを再作成してください。
    新しいデータベース 'pubs' を開けませんでした。
    CREATE DATABASE は中止されます。 (Microsoft SQL Server、エラー: 950)

    キャンセル

  • 2017/05/13 15:15

    2000 では古すぎて 2016 では自動アップグレードができないようですね。ダウンロードした際、一緒に instpubs.sql というスクリプトが含まれていると思いますが、それを SSMS で走らせてみてください。ただし、スクリプトは一行手直しが必要です。具体的には以下の記事を見てください。LocalDB 2016 では作成できました。SQL Server 2016 Express は試してませんが。

    http://fa11enprince.hatenablog.com/entry/2014/05/28/234203

    キャンセル

  • 2017/05/13 17:44 編集

    pubsデータベースが作成できたので、記事の内容を進めました。
    「4.EDMの追加」で躓きました。

    「ADO.NET Entity Data Model」を追加
    モデルに含めるコンテンツ:データベースから EF Designer
    接続のプロパティ
     データソース:Microsoft SQL Server データベースファイル
     データベースファイル名:pubs.mdf
    でOKでエラーになりました。

    データベースのアタッチに失敗しました。
    SQL Server への接続を確立しているときにネットワーク関連またはインスタンス固有のエラーが発生しました。
    サーバーが見つからないかアクセスできません。

    イベントログ:
    LocalDB 親インスタンスのバージョンが無効です: MSSQL12E.LOCALDB

    ここの情報を参考に、レジストリの"HKEY_CURRENT_USER\SOFTWARE\Microsoft\Microsoft SQL Server\UserInstances"を削除してみました。
    https://social.msdn.microsoft.com/Forums/en-US/aabaa5b7-05c8-4c0b-a559-bacbef0a41f4/mssqllocaldb-instance-issue?forum=sqlexpress

    エラーの内容が変わりました。
    Unable to open the physical file "C:\Program Files\Microsoft SQL Server\MSSQL13.SQLEXPRESS\MSSQL\DATA\pubs.mdf". Operating system error 5: "5(アクセスが拒否されました。)".
    An attempt to attach an auto-named database for file C:\Program Files\Microsoft SQL Server\MSSQL13.SQLEXPRESS\MSSQL\DATA\pubs.mdf failed. A database with the same name exists, or specified file cannot be opened, or it is located on UNC share.

    キャンセル

  • 2017/05/13 22:00 編集

    > pubsデータベースが作成できたので、記事の内容を進めました。

    それができたのであれば掲題&最初の質問の課題・問題は解決したのですよね。

    で、次のステップとして、チュートリアルを始めて、その過程で表題&最初の質問とは別の問題に遭遇したのですよね。

    あれば、このスレッドはクローズして掲題&最初の質問ではないことは新たに別のスレッドを立てて質問してください。

    最初の質問の回答が次の疑問を生んで、次から次へと質問を繰り返すのは、ここのようなサイトでは最も好ましくないパターンです。

    その前に、私の先のレスの (2) をよく考えてください。

    キャンセル

0

追記の:teraotailnosuke 2017/05/13 14:02  記述より、
pubs のサンプルDBが 取得できれば良いと
解釈して、

グーグル検索で、
ms sql sample database

sql 2008 sample database
sql 2005 sample database
sql 2008 sample database pubs
などで、ヒットしたリンクを丹念に探してください。

Official Microsoft GitHub Repository containing code samples for SQL Server  
Microsoft/sql-server-samples 
などに辿り付ける筈です。(入手方法は、Git以外にもあります。)
必要な情報を取得する過程も重要ですので、直リンクは掲示しません。

pubs や NorthWind などは、古くからあるサンプルデータです。
⇒ACCSESS2.0 の頃からの焼き直しなんてのも、存在します。
正しいサイトに辿り付けると、MS-SQL2000~ の歴代サンプルデータベースが
取得出来たりします。(サイト再構成で無くなっている場合は除く)

MSのサンプルプロジェクトには、稀にCTPやRC版を使った物があります。
今回のDB部分が、将にそれに当たってしまった様子。

投稿

編集

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

15分調べてもわからないことは、teratailで質問しよう!

  • ただいまの回答率 90.13%
  • 質問をまとめることで、思考を整理して素早く解決
  • テンプレート機能で、簡単に質問をまとめられる