如何使用 sqlcmd.exe 连接到数据库引擎

SQL Server 支持使用 TCP/IP 网络协议(默认值)、命名管道协议和 VIA 协议的客户端通信。如果客户端要连接到同一计算机上的数据库引擎实例,则也可以使用共享内存协议。通常有三种选择协议的方法。sqlcmd 实用工具使用的协议按以下顺序确定:

下面的示例显示连接到 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>
    

使用 VIA 进行连接

  • 使用下列常规语法之一进行连接:

    sqlcmd -S via:<computer name>,<port number>,<NIC number>
    
  • 连接到默认实例:

    sqlcmd -S via:ComputerA,1433,0
    
  • 连接到命名实例:

    sqlcmd -S via:ComputerA,1691,0
    
重要说明重要提示

不推荐使用 VIA 协议。后续版本的 Microsoft SQL Server 将删除该功能。请避免在新的开发工作中使用该功能,并着手修改当前还在使用该功能的应用程序。

注意注意

如果未提供完整的连接信息,SQL Server Browser 将提供默认端口和 NIC 的连接信息(如果该浏览器正在运行)。

注意注意

本主题仅讨论了 sqlcmd 实用工具的连接选项。sqlcmd 实用工具还有许多其他参数。有关详细信息,请参阅 sqlcmd 实用工具