質問者さんは、チュートリアルを始める前の段階で、まず 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 05:02
退会済みユーザー
2017/05/13 06:15
2017/05/13 11:34 編集
退会済みユーザー
2017/05/13 13:05 編集