AttachDbFileName
はひどく誤解を招く機能です。この「データベース」に接続する各アプリケーションは、データ ファイルのコピーを作成します。 Machine1
の場合 接続して変更を加えると、それらの変更は Machine2
には表示されません .これは、単一マシンのシナリオでも多くの混乱を引き起こします。これは、人々が Visual Studio 経由で接続し、何らかの更新を行った後、Management Studio からは表示されないためです。またはその逆。 User Instance
この機能は廃止されました
理由があります。これらの両方の使用をやめてください。
複数のマシン/アプリケーションを同じに接続したいので
MACHINE1-PC
で これを行います:
ShopDatabase.mdf
を移動 および関連する .ldf
ファイルをユーザー フォルダーからインスタンスのデータ フォルダーに移動します。これは何か いいね:
.\SQLEXPRESS
を使用して、ローカル Express インスタンスに接続します。 . データベースを接続する
次のコードを使用:
CREATE DATABASE ShopDatabase
ON (FILENAME = 'C:\...\ShopDatabase.mdf'),
-------------------^^^ fill this in
(FILENAME = 'C:\...\ShopDatabase_Log.ldf')
-------------------^^^ fill this in
FOR ATTACH;
-- if there is no log file, you may need to do:
CREATE DATABASE ShopDatabase
ON (FILENAME = 'C:\...\ShopDatabase.mdf')
-------------------^^^ fill this in
FOR ATTACH_REBUILD_LOG;
<リ>
MACHINE1-PC
の外部 IP アドレスを特定する (別のマシンから ping を介してこれを行うことができます - ローカルでは 127.0.0.1
を教えてくれます) これは役に立たない)。固定 IP があり、DHCP を使用していないと仮定すると、これはより信頼性の高い接続方法になるか、少なくとも余分な手順 (名前の解決) がありません。ただし、DHCP を使用する場合は、IP アドレスが時間の経過とともに変化する可能性があるため、これに依存する必要はありません。接続文字列は次のようになります:
Data Source=MACHINE1-PC\SQLEXPRESS;
Network=DBMSSOCN;
Integrated Security=True;
Initial Catalog=ShopDatabase;
-- or:
Data Source=<<IP Address>>\SQLEXPRESS;
Network=DBMSSOCN;
Integrated Security=True;
Initial Catalog=ShopDatabase;
-- (replace <<IP Address>> of course)
Machine1
上 あなたの接続文字列できる Data Source=.\SQLEXPRESS
を使用 、しかし、いくつかのキーストロークを節約するよりも一貫性を保つ方が良い.このようにして、構成ファイルなどに他の変更を加えた場合、マシン名を変更する必要なく、それらを他のマシンに配布できます。