mssql-cli
SQL Server 命令列客户端,具有自動補全和語法突出顯示功能。通過x-cmd一鍵安裝,即刻體驗高效工作流程。
| Language | python |
| Homepage | https://github.com/dbcli/mssql-cli |
- 使用 docker 模組自動拉取基礎鏡像,並在首次執行時根據需求重構為一個可直接運行的完整軟件鏡像。
- 在後續運行中,命令會基於已構建好的鏡像快速啓動容器,實現秒級響應。
- 所有操作均在容器內部完成,與本地系統完全隔離,無需任何本地依賴,安全、乾淨且不留痕跡。
- 當因軟件版本或依賴發生變化需重構鏡像時,會充分利用 Docker 鏡像構建的緩存機制,最大限度地複用已下載的依賴與構建成果,大幅縮短重建耗時。
該功能仍在測試中,使用過程中如有問題,歡迎在 X-CMD 社區 留言反饋。
x docker alpine mssql-clixd alp mssql-clix docker ubuntu mssql-clixd ubu mssql-clix docker kali mssql-clixd kal mssql-clix docker debian mssql-clixd deb mssql-clix docker fedora mssql-clixd fed mssql-clix install mssql-cli
| x env | sh
|
| /pip | sh
|
| debian8/apt | sh
|
| debian9/apt | sh
|
| ubuntu16.04/apt | sh
|
| ubuntu18.04/apt | sh
|
| centos7/yum | sh
|
| centos8/yum | sh
|
| rhel7/yum | sh
|
SQL Server 命令總拼錯?試試帶自動補全的 mssql-cli
如果你經常用 sqlcmd 連接 SQL Server,一定經歷過這種場景:寫查詢時忘了某個系統函數的拼寫,或者不確定 JOIN 語法的確切格式,只能在 SSMS 和終端之間來回切換查文檔。對於習慣命令列工作的開發者來説,這種中斷很影響效率。
mssql-cli 正是為了解決這個痛點而設計的。它是微軟官方支持的開源項目,屬於 dbcli 社區(開發 pgcli、mycli 的同一批人),核心目標很簡單:給 SQL Server 提供一個具有現代交互體驗的命令列客户端——自動補全、語法高亮、智能提示,這些現代 IDE 標配的功能,終於也能在 SQL Server 終端裏用了。
自動補全:不只是關鍵詞提示
mssql-cli 的自動補全做得相當深入。它會在你輸入時實時分析上下文,提供精準的補全建議:
- 表名和列名:連接到資料庫後,它會自動讀取 schema 信息。輸入
SELECT * FROM後按 Tab,會列出當前資料庫的所有表;輸入SELECT col時,會根據FROM子句中的表智能提示該表的列名。 - SQL 關鍵字:
SELECT、WHERE、GROUP BY等關鍵字的補全自然不在話下。 - 函數和存儲過程:系統函數如
GETDATE()、ROW_NUMBER()等都能自動補全,包括參數提示。
這個功能基於 prompt_toolkit 構建,體驗和 Python 的交互式解釋器 IPython 類似,方向鍵選擇、Tab 確認,上手沒有學習成本。
語法高亮:一眼看清查詢結構
mssql-cli 會對 T-SQL 語法進行實時着色,關鍵字、字符串、數字、註釋都有不同的顏色區分。這在寫複雜查詢時特別有用——括號是否配對、AND 和 OR 的邏輯關係是否清晰,通過顏色一眼就能判斷。
高亮方案是可配置的,如果你不喜歡默認配色,可以通過配置文件調整。
多行編輯模式
默認情況下,按 F3 可以切換多行/單行模式。多行模式下,你可以像寫腳本一樣編寫複雜的存儲過程或批處理查詢,使用方向鍵上下移動光標編輯不同行,按 Enter 不會立即執行,而是插入換行。編寫完成後,按 Alt+Enter 執行整個語句塊。
這個模式對於需要格式化、分層的複雜 SQL 簡直是剛需——你不用再擔心按錯回車導致半條語句被提交執行。
查詢歷史與搜索
mssql-cli 會自動保存你執行過的查詢歷史。按 ↑/↓ 可以瀏覽歷史命令,按 Ctrl+R 可以進行反向搜索(類似 Linux 的 reverse-i-search),輸入關鍵詞就能快速定位到之前執行過的類似查詢。
歷史記錄會持久化保存,下次打開 mssql-cli 時依然存在,方便重複執行日常維護腳本。
非交互式執行
雖然交互體驗是 mssql-cli 的強項,但它也支持傳統的非交互式用法。你可以直接通過命令列參數傳入要執行的查詢:
mssql-cli -S localhost -d MyDB -U sa -P password -Q "SELECT TOP 10 * FROM Users"或者從文件讀取 SQL 腳本:
mssql-cli -S localhost -d MyDB -U sa -P password < script.sql這使得 mssql-cli 不僅能作為日常開發的交互工具,也能勝任 CI/CD 流水線中的自動化腳本執行。
格式化輸出
查詢結果默認以表格形式展示,列寬自動調整,支持包含特殊字符的數據。如果結果集很大,會自動進入分頁模式(類似 less),可以滾動查看而不會刷屏。
也可以通過 --output-format 參數切換為其他格式,比如 CSV 或 JSON,方便和其他命令列工具鏈式處理:
mssql-cli -S localhost -d MyDB -Q "SELECT * FROM Logs" --output-format csv > logs.csv連接示例
基本的連接語法和 sqlcmd 類似:
# 基礎連接
mssql-cli -S localhost -U sa -P yourpassword
# 指定資料庫
mssql-cli -S localhost -d MyDatabase -U sa -P yourpassword
# 使用 Windows 身份驗證(僅 Windows)
mssql-cli -S localhost -E
# 指定端口
mssql-cli -S localhost,1433 -U sa -P yourpassword常用快捷鍵:
| 快捷鍵 | 功能 |
|---|---|
Tab | 觸發自動補全 |
F3 | 切換單行/多行模式 |
Ctrl+R | 反向搜索歷史 |
Alt+Enter | 多行模式下執行查詢 |
Ctrl+D 或 quit | 退出 mssql-cli |
配置文件
mssql-cli 支持通過配置文件自定義行為。配置文件位於 ~/.config/mssql-cli/config(Linux/macOS)或 %USERPROFILE%\AppData\Local\dbcli\mssql-cli\config(Windows),可以設置默認服務器、語法高亮主題、是否啓用多行模式等。
注意事項:項目狀態
需要説明的是,mssql-cli 目前已進入維護模式,微軟計劃用新的 go-sqlcmd 完全替代它。go-sqlcmd 是用 Go 語言重寫的版本,保持了類似的使用體驗,同時有更好的性能和跨平台支持。
如果你現在正要開始一個新項目,建議直接評估 go-sqlcmd;但如果你需要立即獲得一個穩定、功能完善的交互式 SQL Server 客户端,mssql-cli 仍然是一個可靠的選擇,畢竟它經歷了多年的生產環境驗證。
同類型工具
mssql-cli 所屬的 dbcli 社區還維護了其他資料庫的類似工具:
如果你需要在多種資料庫之間切換,這套工具能提供一致的操作體驗。
來源: https://github.com/dbcli/mssql-cli
相關鏈接
幫助我們改善文檔
X-CMD 的文檔內容來自命令的幫助文檔、多個數據源以及文檔庫生成。文檔中如果有錯誤或不明確的地方,歡迎通過這些方式進行告知~
完成验证加入微信群