最近、SQL Server Expressインストーラーとこの手順を使用して、LocalDBをバージョン13から14にアップグレードしました。インストール後、バージョン13の既存のデフォルトインスタンス(MSSQLLOCALDB)を停止し、v14.0.1000サーバーエンジンを自動的に使用する新しいインスタンスを作成しました。
データベース統合テストによくLocalDBを使用します。つまり、xunitテストでは、テストが終了すると削除される(一時的な)データベースを作成します。新しいバージョン以降、残念ながら次のエラーメッセージが原因ですべてのテストが失敗します。
物理ファイル 'C:\ Users \ kepflDBd0811493e18b46febf980ffb8029482a.mdf'を開くまたは作成しようとしたときに、CREATE FILEでオペレーティングシステムエラー5(アクセスが拒否されました)が発生しました。
奇妙なことは、mdfファイルのターゲットパスが正しくないことです。C:\ Users \ kepflとDBd0811493e18b46febf980ffb8029482a.mdf(単一のテストのランダムなデータベース名)の間にバックスラッシュがありません。データベースは単純なコマンドで作成されますCREATE DATABASE [databaseName]
-ここでは特別なことは何もありません。
SSMSでは、データ、ログ、およびバックアップのターゲットの場所は次のとおりです。
ただし、場所を更新しようとすると、別のエラーメッセージが表示されます。
LocalDBがデータベースを再度作成できるように、デフォルトの場所を更新するにはどうすればよいですか?LocalDBがデフォルトのロケーションディレクトリとデータベースファイル名を正しく結合していないことは明らかです。編集できるレジストリエントリはありますか?または他に何か?
Dougの回答とsepupicのコメントの後の更新
このStackoverflowの質問によると、デフォルトの場所もレジストリ経由で変更可能である必要があります。ただし、対応するキー「DefaultData」、「DefaultLog」、および「BackupDirectory」を見つけようとすると、レジストリでそれらを見つけることができません。SQL Server v14はこれらのレジストリキーの名前を変更しましたか、またはこれらの情報をレジストリから移動しましたか?