提升SSMS使用效率的一些Tips

目录

本人工作中最常用的数据库就是Microsoft SQL Server,SSMS这个软件自然也是使用了多年,如果能搭配SQL Prompt这个插件,效率将会大大提升,但如果工作环境权限管理严格,无法安装类似插件,那如何在原生态的情况下提升SSMS的使用效率呢?下面记录一下本人的使用经验以及一些可能大多数人都没用到的SSMS“隐藏”功能。重点介绍一些功能的存在性,不会过度详细展开如何使用。

选项设置 (Options)

  • 结果中显示查询语句
  • 显示行号
  • 文本结果用逗号分隔
    设置入口见上面第一张图右上角,这样做的一个好处就是查询表数据时,文本结果中的表头都用逗号分隔,复制后可直接用在Select或Insert语句中。

快捷键-查询 (Query Shortcuts)

设置了查询快捷键之后,按快捷键就会自动执行SQL语句,比如选中一个表名table_a,按CTRL+3就会自动执行select top 1000 * from table_a。以下是我设置的查询快捷键,建议根据实际使用频率进行设置:

快捷键 - 其它

和查询无关的,个人认为比较有用的快捷键:

  • 光标移动到匹配元素: CTRL + ] ( 比如移到匹配的括号, begin/end, begin try/end try )
  • 光标移动到上次编辑的位置: CTRL + SHIFT + backspace
  • 注释: CTRL + K, CTRL + C ( comment )
  • 取消注释: CTRL + K, CTRL + U ( uncomment )

Solution & Project视图

不是只有写.Net/JAVA等才需要新建solution/project,写T-SQL也可以,这样可以更好地组织和保存代码,而不是每次都新建一个查询窗口,查完就关闭丢弃。新建项目菜单路径: File - New - Project, 默认会创建一个包含一个Project的Solution,后续可以新加其它Project

Code Snippet Manager

SQL Prompt有个设置常用查询代码段的功能,比如输入ssf之后按TAB就会自动替换为select * from,其实SSMS也有一个类似的功能,只是设置会麻烦一些。这个功能叫Code Snippets Manager,设置菜单入口:Tools - Code Snippet Manager,可以发现SSMS已经自带一些代码段:

我们可以根据实际工作再设置一些经常用到的Query,之前写了一个简单的python程序用来快速生成Snippet用于导入配置。设置好了之后,在查询界面按CTRL+K,CTRL+V后会调出code snippet选择界面,然后按上下和Enter键进行选择

Search in files

在查询编辑界面,查找关键字默认限于当前窗口,其实有选项可以在多个文件中同时搜索,实现类似文件内容过滤的功能。菜单入口: Edit - Find and Replaces, 也可按 CTRL+SHIFT+H 调出,或按CTRL+F后进行范围选择

Bookmark

书签操作:Edit - Bookbooks…
显示书签窗口: View - Bookmark Window
这个就不展开了,知道有这个功能,并善加利用即可

SQLCMD Mode

之前写过一篇文章简单介绍过这个功能,这里再次推荐一下,sqlcmd非常强大,个人觉得很有用的一点是可以在一个SSMS的Tab里同时查询多个server的数据,结果会一起返回,方便快速对比不同环境的数据,比如:

:connect server_1
select * from Table_A
go

:connect server_2
select * from Table_A
go

还支持执行不需要交互的CMD命令行,临时设置结果输出保存到文本等等,更多功能还请参考官方文档

Split view

SSMS可以通过拖拽将查询窗口进行左右拆分从而可以同时看到多个TAB,它还支持将同一个TAB进行上下拆分,非常方便对长SP进行调试,或者交替查看对比同一个TAB内相隔很远的两段代码。

External Tool

设置入口:Tools – External Tool…
“外部工具”可以配置执行命令行,支持传入特定的上下文参数,比如将当前文件名或鼠标选中的字符串等传给命令行。用户可以编写自定义脚本和命令行工具,然后在这里配置快捷执行入口。 此工具能实现很多个性化的功能。比如我用它来快速通过模版去创建一个新的SQL Project,只要将project名写在查询窗口上,然后选中它后点击对应的菜单,创建好的project文件的路径就已经在剪切板中,我只要按路径添加到solution中。