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
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后报错
 
Figure-3:字段的内容显示不完整
 
 
4. 总结
在命令行环境下有所增强的功能还是挺好的,适合于没有图形化界面的场景下使用。如果用于开发、管理或查询等,有条件的情况下,还是建议在Windows平台下使用SSMS吧。
 
另外再补充一下:http://www.codeplex.com/已经不再更新,要下载SQL Server的示例数据库直接到Github(https://github.com/Microsoft/sql-server-samples/releases/tag/adventureworks)下载更方便。
 

体验mssql-cli的更多相关文章

  1. MSSQL·CLI执行T-SQL

    阅文时长 | 0.44分钟 字数统计 | 480.8字符 主要内容 | 1.引言&背景 2.详细步骤&排坑指南 3.中途执行异常处理方式 4.声明与参考资料 『MSSQL·CLI执行T ...

  2. [MSSQL]SCOPE_IDENTITY,IDENT_CURRENT以及@@IDENTITY的区别

    简单解释下SCOPE_IDENTITY函数,IDENT_CURRENT函数以及@@IDENTITY全局变量的区别 SCOPE_IDENTITY函数返回当前作用域内,返回最后一次插入数据表的标识,意思是 ...

  3. [MSSQL]如何高效查询表的总记录数

    如何高效查询表的总记录数?[总结-整理-马克] 首先想到的自然是在表主键上应用COUNT函数来查询了,这个是目前使用最多的方法,没有之一 ) ROWS FROM product 这里再给出一些其它方法 ...

  4. 专访Vue作者尤雨溪:Vue CLI 3.0重构的原因

    1.为什么要对 Vue CLI 进行大规模修改? 尤雨溪认为旧版本的 Vue CLI 本质上只是从 GitHub 拉取模版,这种拉模版的方式有几个问题: (1) 在单个模版里面同时支持太多选项会导致模 ...

  5. SQL SERVER 2008- 字符串函数

    /* 1,ASCII返回字符表达式中最左侧字符的ASCII代码值 仅返回首字母的ASCII码值 parameter char或varchar returns integer */ SELECT ASC ...

  6. EF Code First、DbContext

    EF Code First.DbContext 对于之前一直使用webForm服务器控件.手写ado.net操作数据库的同学,突然来了EF和MVC,好多新概念一下泉涌而出,犹如当头一棒,的确有点不知所 ...

  7. 2017-07-26 ThinkPHP简单使用

    ThinkPHP是什么?有何优点? ThinkPHP 是一个免费开源的,快速.简单的面向对象的 轻量级PHP开发框架,ThinkPHP为WEB应用开发提供了强有力的支持,这些支持包括: * MVC支持 ...

  8. Vue CLI 3.x 简单体验

    文档 中文文档 补充于02月10日 vue脚手架的3.x版本已经在开发中,现在还处于alpha版本.我们来看看有哪些变化. 使用 npm install -g @vue/cli 命名方式已经改为npm ...

  9. Vue Cli 3 初体验(全面详解)

    vue新出了 vue cli 3,并直接改名为 @vue/cli,今天就来盘他. 首先介绍等啰里啰嗦的就不写了,贴个link吧. Vue CLi3 github Vue CLi web 要是想先了解下 ...

  10. .NET Core系列 : 1、.NET Core 环境搭建和命令行CLI入门

    2016年6月27日.NET Core & ASP.NET Core 1.0在Redhat峰会上正式发布,社区里涌现了很多文章,我也计划写个系列文章,原因是.NET Core的入门门槛相当高, ...

随机推荐

  1. ADO.NET中SqlCommand对数据库操作

    我们要不断地进行数据库的读写,那么ExecuteNonQuery(),ExecuteReader()与ExecuteScalar()就是我们在对数据库进行操作时要用到的,下面我来依次认识一下:     ...

  2. 初始MyBatis

    初始MyBatis 框架的概念: 框架是一个提供可重复的功用结构的半成品.它为我们构建新的应用程序提供了极大的便利,一方面提供了可以拿来就用的工具,更重要的是提供了可重用的设计.D 框架技术的优势: ...

  3. CLR之委托的揭秘(二)

    杂谈 在开始真正的代码之前,分析一下上周的一些工作内容,发现自己在代码上还是有很多小毛病需要纠正和去更改的,首先之前一直疏于文档的整理,几乎很少去写文档,第二对于接口开发过程中缺少一定的严谨性,很多问 ...

  4. Java 浏览器兼容模式

    现在设计的东西,很多浏览器不兼容.下面贴出代码.测试在360和IE浏览器下,可以兼容的 <!doctype html><html><head>    <met ...

  5. _2Python_注释命名等基本操作

    注释:注解,解释 主要用于在代码中给代码标识出相关的文字提示(提高代码的可读性)或调试程序,方便别人阅读和自己日后修改. Python中注释分为两类.单行注释:单行注释以#号开头,在一行内,#号后面的 ...

  6. 苹果快速的修复了Mac OS High Sierra 上出现了root的漏洞

    最近苹果因为Mac最新系统 Mac OS High Sierra 上出现了root的漏洞走上了风口浪尖,不过还好,在一封苹果给科技媒体'9to5 Mac'的回复中得知,苹果在接收到报告之后,立即展开修 ...

  7. Ckeditor与Ckfinder的配合使用,上传图片、水印、修改图片名字为当前日期 asp.net

    为了配置出来上传功能,并且还添加水印,修改图片的名字为日期,真的头疼了很久,现在来分享一下自己所做的,也算一点小小的成就吧,顺带帮帮很多还在弄这个的猿们.我是分别用了两种方法.先说低版本的Versio ...

  8. codeblocks+mbedtls库配置

    网上都没有找到window下mbedtls的相关配置,或许是太简单了.希望可以帮助那些像我这样的小白一枚. 下载 github的下载:https://github.com/ARMmbed/mbedtl ...

  9. c专家编程摘录

    C专家编程摘录 c操作符的优先级 有时一些c操作符有时并不会像你想象的那样工作. 下方表格将说明这个问题: 优先级问题 表达式 期望的情况 实际情况 . 优先级高于* *p.f (*p).f *(p. ...

  10. 深入理解php内核 编写扩展 I:介绍PHP和Zend

    内容: 编写扩展I -  PHP和Zend起步 原文:http://devzone.zend.com/public/view/tag/Extension Part I: Introduction to ...