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:智慧提示
 
Figure-2:格式化顯示
2. 安裝
下面就來試用下這款工具吧。這裡僅以CentOS7下演示,其他平臺可參考SQL Server Blog,或者在Github上有更詳細的安裝指引:https://github.com/dbcli/mssql-cli/blob/master/doc/installation_guide.md
 
 
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
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後報錯
 
Figure-3:欄位的內容顯示不完整
 
 
4. 總結
在命令列環境下有所增強的功能還是挺好的,適合於沒有圖形化介面的場景下使用。如果用於開發、管理或查詢等,有條件的情況下,還是建議在Windows平臺下使用SSMS吧。
 
另外再補充一下:http://www.codeplex.com/已經不再更新,要下載SQL Server的示例資料庫直接到Github(https://github.com/Microsoft/sql-server-samples/releases/tag/adventureworks)下載更方便。