1. 背景
安装SQL Server on Linux以后,在命令行下使用sqlcmd,你会发现代码提示,语法高亮,甚至连多行复制都不支持,相比之下,MySQL的命令行客户端还好用多了。只作简单的命令管理还行,作数据库开发确定还得使用SSMS才行。不过,微软不久前发布了一款针对SQL Server新命令行的交互工具——
mssql-cli,详细见SQL Server Blog有介绍:
该工具提供了如下特性:
- T-SQL IntelliSense T-SQL智能感知
- Syntax highlighting 语法高亮
- Pretty formatting for query results, including Vertical Format 查询结果格式美化,包括垂直格式
- Multi-line edit mode 多行编辑模式
- Configuration file support 支持配置文件

Figure-1:智能提示
2. 安装
2.1 安装最新的EPEL(Extra Packages for Enterprise Linux)
[root@134test ~]# yum install epel-release
2.2 安装相关依赖
[root@134test ~]# yum install libunwind libicu python-pip
2.3 安装mssql-cli
[root@134test ~]# pip install mssql-cli
2.4 使用mssql-cli登陆
[root@134test ~]# mssql-cli -U sa
Password:
Version: 0.8.0
Mail: sqlcli@microsoft.com
Home: http://github.com/dbcli/mssql-cli
master>SELECT @@version
+--------------------+
| (No column name) |
|--------------------|
| Microsoft SQL Server 2017 (RC2) - 14.0.900.75 (X64)
Jul 27 2017 08:53:49
Copyright (C) 2017 Microsoft Corporation
Developer Edition (64-bit) on Linux (CentOS Linux 7 (Core)) |
+--------------------+
(1 row affected)
Time: 0.103s
master>
3. 体验
在Xshell使用mssql-cli,有如下几点心得,欢迎补充。
- 语法高亮,智能提示,查询结果格式美化都有了。
- 若是横向显示的字段过长,会自动把表的字段以纵向的格式显示,并支持逐行上下翻。
- 直接回车便可执行语句,无须以GO结束。
不过也发现几个问题:
- 直接粘贴多行语句仍是会出错。(难道我复制的姿式不对?)
- 查询返回的数据较多,返回结果较慢;查询较大的数据,很慢。如果等不及按下两次ctrl+c,会以下错误。
- 字段的内容过长没法显示完整。

Figure-3:查询过程当中两次ctrl+c后报错
4. 总结
在命令行环境下有所加强的功能仍是挺好的,适合于没有图形化界面的场景下使用。若是用于开发、管理或查询等,有条件的状况下,仍是建议在Windows平台下使用SSMS吧。