ユーザーが変更しない限り、Microsoft SQL Server の既定のインスタンスが名前付きパイプ プロトコルをリッスンすると、パイプ名として \\.\pipe\sql\query
が使用されます。 ピリオドは、コンピューターがローカル コンピューターであることを示 pipe
、接続が名前付きパイプであり、 sql\query
がパイプの名前であることを示します。 既定のパイプに接続するには、別名でもパイプ名に \\<computer_name>\pipe\sql\query
を指定する必要があります。 SQL Server が別のパイプで受信を待機する構成になっている場合は、パイプ名としてそのパイプを使用する必要があります。 たとえば、SQL Server がパイプとして \\.\pipe\unit\app
を使用している場合、別名ではパイプ名として \\<computer_name>\pipe\unit\app
を使用しなければなりません。
有効なパイプ名を作成するには、次の操作を行う必要があります。
[別名] を指定します。
プロトコルとして名前付きパイプを選択します。
[パイプ名] を入力します。 または、[パイプ名] を空白のままにして、[プロトコル] と [サーバー] を指定した後に SQL Server 構成マネージャーで適切なパイプ名を入力することもできます。
[サーバー] を指定します。 名前付きのインスタンスの場合は、サーバー名とインスタンス名を指定できます。
接続時に、SQL Server Native Client コンポーネントは、指定されたエイリアス名のサーバー、プロトコル、およびパイプ名の値をレジストリから読み取り、 np:\\<computer_name>\pipe\<pipename>
または np:\\<IPAddress>\pipe\<pipename>
形式でパイプ名を作成します。名前付きインスタンスの場合、既定のパイプ名は \\<computer_name>\pipe\MSSQL$<instance_name>\sql\query
。
注
既定では、ポート 445 が Microsoft Windows ファイアウォールによって閉じられます。 MicrosoftSQL Server はポート 445 経由で通信するため、名前付きパイプを使用して受信クライアント接続をリッスンするように SQL Server が構成されている場合は、ポートを再度開く必要があります。 ファイアウォールの構成方法については、 SQL Server オンライン ブックの「SQL Server アクセスのためのファイアウォール構成方法」か、またはファイアウォールについてのドキュメンテーションを参照してください。
ローカル サーバーへの接続
クライアントと同じコンピューターで実行されている SQL Server に接続する場合は、サーバー名と (local)
を使用できます。
(local)
の使用はあいまいさにつながるため推奨されません。ただし、クライアントが目的のコンピューターで実行されていることがわかっているときに役立ちます。 たとえば、ノート PC で SQL Server を実行し、プロジェクト データを格納する営業部隊などのモバイル切断ユーザー用のアプリケーションを作成する場合、(ローカル) に接続しているクライアントは常に、ノート PC 上で実行されている SQL Server に接続します。
(local)
の代わりに、localhost
またはピリオド (.) という単語を使用できます。
接続プロトコルの確認
次のクエリでは、現在の接続に使用されているプロトコルが返されます。
SELECT net_transport
FROM sys.dm_exec_connections
WHERE session_id = @@SPID;
例示
サーバー名による既定のパイプへの接続:
Alias Name <serveralias>
Pipe Name <blank>
Protocol Named Pipes
Server <servername>
IP アドレスによる既定のパイプへの接続:
Alias Name <serveralias>
Pipe Name <leave blank>
Protocol Named Pipes
Server <IPAddress>
既定以外のパイプへのサーバー名による接続:
Alias Name <serveralias>
Pipe Name \\<servername>\pipe\unit\app
Protocol Named Pipes
Server <servername>
名前付きのインスタンスに対するサーバー名による接続:
Alias Name <serveralias>
Pipe Name \\<servername>\pipe\MSSQL$<instancename>\SQL\query
Protocol Named Pipes
Server <servername>
ローカル コンピューターに対する localhost
による接続:
Alias Name <serveralias>
Pipe Name <blank>
Protocol Named Pipes
Server localhost
ローカル コンピューターに対するピリオドによる接続:
Alias Name <serveralias>
Pipe Name <left blank>
Protocol Named Pipes
Server .
注
sqlcmd パラメーターとしてネットワーク プロトコルを指定するには、SQL Server オンライン ブックの「方法: sqlcmd.exeを使用してデータベース エンジンに接続する」を参照してください。
こちらもご覧ください
共有メモリ プロトコルを使用した有効な接続文字列の作成
TCP/IP を使用した有効な接続文字列の作成
ネットワーク プロトコルの選択