localhostのみを使用してlocalhost \ sqlexpressを指す
-
19-08-2019 - |
質問
共通のコードベースで作業している開発者の1人はSQL Server Express 2005を実行しており、他の2人はSQL Server 2005を実行しています。すべて正常に動作していますが、接続文字列が異なります。共通の構成を維持し、スクリプトを構築するために、 <!> quot; localhost \ sqlexpress <!> quot; を <!> quot; localhost <!> quot; 他の2人の開発者と同様。
これを行うことはできますか?または、同じ接続文字列で3つすべてを実行するより良い方法があるかもしれません...求められている解決策は、3つすべてをコードリポジトリの同じファイルバージョンで実行できるようにすることです。
私は100%明確ではないかもしれません:基本的に私はこれが欲しいです:
Data Source=localhost;Initial Catalog=Sample;Integrated Security=True
これとまったく同じものを接続するには:
Data Source=localhost\sqlexpress;Initial Catalog=Sample;Integrated Security=True
可能な場合。
解決
テストを行って動作するようになりました。
sql expressはデフォルトでtcp / ipを有効にせず、有効にするとデフォルトポート1433を使用しません。
これを実現するには、<!> quot; Sql server configuration manager <!> quot;を開く必要があります。次に、プロトコルの下でtcp / ipを有効にします。その後、<!> quot; tcp / ip <!> quot;をダブルクリックし、<!> quot; IPアドレス<!> quot;を選択します。タブをクリックして一番下までスクロールし、<!> quot; TCP Dynamic Ports <!> quot;を空白にします。 TCPポートに1433と入力します。
その後、SQLサーバーサービスを再起動すると、通常の接続文字列で動作するはずです。
他のヒント
SQL Serverインスタンスには、任意の名前を付けることができます。 SQL Expressでも同様に実行できると確信しているので、各マシンのインスタンスに同じ名前を付けてから、localhost \ <!> lt; name <!> gt;。
さらに良いのは、データベース名をハードコーディングしないことです。マシンまたはユーザー固有の設定(レジストリ、設定ファイル、好みに合わせて)から読み込みます。
このトピックは死んで埋葬されていると確信しています...しかし、これが誰かの助けにもなる場合:
<!> quot; 1人の開発者がSQL Server Express 2005を実行しており、他の2人がSQL Server 2005 <!> quot;
を実行していますインストール時に、インスタンスの名前がMSSQLSERVERである可能性があります。インストール時に、インスタンスがSQLEXPRESSという名前である可能性があります。 MSSQLSERVERはそのままlocalhostとして機能しますが、SQLEXPRESSは機能しません。将来の参照のために、インストール時にSQLEXPRESSをMSSQLSERVERに名前変更することにより、SQL Server Expressでこれを回避できます。
Johnのソリューションは明らかにクリーンです。