Crear una cadena de conexión válida con canalizaciones con nombre

Salvo que el usuario lo cambie, cuando la instancia predeterminada de MicrosoftSQL Server escucha en el protocolo Canalizaciones con nombre, utiliza \\.\pipe\sql\query como el nombre de canalización. El punto indica que se trata del equipo local, pipe indica que la conexión es una canalización con nombre y sql\query es el nombre de la canalización. Para conectarse a la canalización predeterminada, el alias debe incluir \\<computer_name>\pipe\sql\query como el nombre de canalización. Si SQL Server se ha configurado para escuchar en una canalización diferente, el nombre de canalización debe utilizar esa canalización. Por ejemplo, si SQL Server utiliza \\.\pipe\unit\app como canalización, el alias debe utilizar \\<computer_name>\pipe\unit\app como el nombre de canalización.

Para crear un nombre de canalización válido:

  • Especifique un Nombre de alias.

  • Seleccione Canalizaciones con nombre en Protocolo.

  • Escriba el Nombre de canalización. Como alternativa, puede dejar el Nombre de canalización en blanco y el Administrador de configuración de SQL Server completará el nombre después de que especifique los valores de Protocolo y Servidor

  • Especifique un valor en Servidor. Para una instancia con nombre, puede proporcionar un nombre de servidor y un nombre de instancia.

En el momento de la conexión, el componente SQL Server Native Client lee los valores de servidor, protocolo y nombre de canalización del Registro para el nombre de alias especificado y crea un nombre de canalización con el formato np:\\<computer_name>\pipe\<pipename> o np:\\<IPAddress>\pipe\<pipename>.Para una instancia con nombre, el nombre de canalización predeterminado es \\<computer_name>\pipe\MSSQL$<instance_name>\sql\query.

[!NOTA]

El Service Pack 2 de Microsoft Windows XP habilita el Firewall de Windows, que cierra el puerto 445 de forma predeterminada. Dado que MicrosoftSQL Server se comunica a través del puerto 445, debe volver a abrir el puerto si SQL Server se ha configurado para escuchar las conexiones de cliente entrantes que utilizan canalizaciones con nombre. Para obtener más información acerca de cómo configurar un firewall, vea “Cómo configurar un firewall para el acceso a SQL Server” en los Libros en pantalla de SQL Server o revise la documentación del firewall.

Conectarse al servidor local

Al conectarse a SQL Server cuando se ejecuta en el mismo equipo que el cliente, puede utilizar (local) como el nombre del servidor. El uso de (local) no se recomienda porque genera ambigüedad, pero puede ser útil cuando se sabe que el cliente se ejecuta en el equipo de destino. Por ejemplo, al crear una aplicación para usuarios desconectados móviles, como puede ser el personal de ventas, en la que SQL Server se ejecutará en equipos portátiles y se almacenarán datos de proyectos, un cliente que se conecte a (local) siempre se conectará al servidor SQL Server que se ejecuta en el equipo portátil. En lugar de (local), es posible usar localhost o un punto (.).

Comprobar el protocolo de conexión

La siguiente consulta devolverá el protocolo utilizado para la conexión actual.

SELECT net_transport 
FROM sys.dm_exec_connections 
WHERE session_id = @@SPID;

Ejemplos

Conectarse por el nombre de servidor a la canalización predeterminada:

Alias Name         <serveralias>
Pipe Name          <blank>
Protocol           Named Pipes
Server             <servername>

Conectarse por la dirección IP a la canalización predeterminada:

Alias Name         <serveralias>
Pipe Name          <leave blank>
Protocol           Named Pipes
Server             <IPAddress>

Conectarse por el nombre de servidor a una canalización no predeterminada:

Alias Name         <serveralias>
Pipe Name          \\<servername>\pipe\unit\app
Protocol           Named Pipes
Server             <servername>

Conectarse por el nombre de servidor a una instancia con nombre:

Alias Name         <serveralias>
Pipe Name          \\<servername>\pipe\MSSQL$<instancename>\SQL\query
Protocol           Named Pipes
Server             <servername>

Conectarse al equipo local utilizando localhost:

Alias Name         <serveralias>
Pipe Name          <blank>
Protocol           Named Pipes
Server             localhost

Conectarse al equipo local utilizando un punto:

Alias Name         <serveralias>
Pipe Name          <left blank>
Protocol           Named Pipes
Server             .

[!NOTA]

Para especificar el protocolo de red como un parámetro sqlcmd, vea "Cómo conectarse al motor de base de datos mediante sqlcmd.exe" en los Libros en pantalla de SQL Server.