web-dev-qa-db-ja.com

SQL Server Expressのインスタンス名が変更されるのはなぜですか?

私は使用しているウェブアプリで働いています

SQL Server Express(Microsoft SQL Server 2016(SP1)(KB3182545)-13.0.4001.0(X64)Oct 28 2016 18:17:30 Copyright(c)Microsoft Corporation Express Edition(64-bit)on Windows 10 Pro 6.3(Build 18362 :))。

Webアプリは接続文字列を使用してDBに接続しています。適切な接続文字列形式を数日検索した後、Nikが this blog の投稿に記述した方法を使用して形式を見つけることができました。

Data Source = np:\\.\pipe\LOCALDB#A9DE3E14\tsql\query; Initial Catalog = MyDataBaseCatalog; User ID = myuser; Password=mypassword;

昨日はすべてうまくいきましたが、今日は止まりました。サービス名が次のように変わっていることがわかりました。

LOCALDB#B87CB983

接続文字列でインスタンス名を新しいサービス名に置き換えた後、Webアプリは適切に機能しますが、これは許容できる解決策ではありません。

インスタンス名が変更される理由を教えてください。これはExpressバージョンの制限ですか?名前を永続的なものにするにはどうすればよいですか?

9
maniacz

このアプリは、通常のSQL Server Express Editionを使用していません。 Express Editionは、サービスコントロールパネル(Windows)に表示されるようにサービスとして実行され、期待どおりに安定したインスタンス名が表示されます。

接続しているこのサービスは、(紛らわしい名前) SQL Server Express LocalDB を使用します。これは、名前の重複の混乱を減らすために、単に「LocalDB」と呼ばれることがあります。 LocalDBはプロセス内で実行されます。つまり、それはサービスではありませんが、isを使用するアプリによって起動されます。

LocalDBは、アプリケーションへのアクセス方法に応じて、さまざまな構成をサポートしています。 「 自動インスタンスと名前付きインスタンス 」というタイトルのドキュメントのセクションと「 LocalDBの共有インスタンス 」というタイトルのセクションを確認してください。

17
AMtwo