SQL Server 支持客户端使用 TCP/IP 网络协议(默认)和命名管道协议进行通信。 如果客户端正在连接到同一计算机上的数据库引擎实例,则还可使用 Shared Memory 协议。 通常有三种选择协议的方法。 sqlcmd 实用工具使用的协议按下列顺序确定:
sqlcmd 使用指定为连接字符串的一部分的协议,如下所述。
如果在连接字符串中未指定协议,sqlcmd 将使用作为连接别名一部分的协议。 若要将 sqlcmd配置为通过创建别名使用特定网络协议,请参阅创建或删除供客户端使用的服务器别名 (SQL Server 配置管理器)。
如果未以其他方式指定协议, sqlcmd 将使用 SQL Server Configuration Manager 中的协议顺序确定的网络协议。
以下示例显示连接到 1433 端口上默认的数据库引擎实例以及假定侦听 1691 端口的数据库引擎命名实例的各种方法。 其中一些示例使用环回适配器的 IP 地址 (127.0.0.1)。 请使用您的计算机网络接口卡的 IP 地址进行测试。
通过指定实例名连接到 数据库引擎 :
sqlcmd -S ComputerA
sqlcmd -S ComputerA\instanceB
通过指定 IP 地址连接到 数据库引擎 :
sqlcmd -S 127.0.0.1
sqlcmd -S 127.0.0.1\instanceB
通过指定 TCP\IP 端口号连接到 数据库引擎 :
sqlcmd -S ComputerA,1433
sqlcmd -S ComputerA,1691
sqlcmd -S 127.0.0.1,1433
sqlcmd -S 127.0.0.1,1691
使用 TCP/IP 进行连接
使用以下常规语法进行连接:
sqlcmd -S tcp:<computer name>,<port number>
连接到默认实例:
sqlcmd -S tcp:ComputerA,1433 sqlcmd -S tcp:127.0.0.1,1433
连接到命名实例:
sqlcmd -S tcp:ComputerA,1691 sqlcmd -S tcp:127.0.0.1,1691
使用命名管道进行连接
使用以下常规语法之一进行连接:
sqlcmd -S np:\\<computer name>\<pipe name>
连接到默认实例:
sqlcmd -S np:\\ComputerA\pipe\sql\query sqlcmd -S np:\\127.0.0.1\pipe\sql\query
连接到命名实例实例:
sqlcmd -S np:\\ComputerA\pipe\MSSQL$<instancename>\sql\query sqlcmd -S np:\\127.0.0.1\pipe\MSSQL$<instancename>\sql\query
使用共享内存(本地过程调用)从服务器上的客户端进行连接
使用以下常规语法之一进行连接:
sqlcmd -S lpc:<computer name>
连接到默认实例:
sqlcmd -S lpc:ComputerA
连接到命名实例:
sqlcmd -S lpc:ComputerA\<instancename>