SSMS 非常有用的一些功能

图片

SQL Server 官方客户端管理工具 SQL Server Management Studio(SSMS),做了非常多且实用的功能,极大方便了使用者对 SQL Server 数据库系统的相关操作和运维。

那么有哪些有用的功能呢?您阅读完这篇文章后,一定会发现某些功能对你是非常有用的。尤其是专业的 DBA 或相关数据库维护人员。下面,我就细数 SSMS 常用且有用的一些功能。


【行号】


在查询窗口显示行号,可以了解代码的工作量,也可以在出错时更方便定位。

工具 -> 选项 -> 文本编辑器 -> Transact-SQL -> 常规 -> 行号(勾选)

如下图,勾选“行号”之后,查询窗口的左边每行都多了数字编号。

图片


【Sqlmd】


sqlcmd 是一个命令行工具,可以连接到 SQL Server 实例中,在 Windows 与 Linux 环境都可以独立安装。而 SSMS 同样也提供 SQLCMD 这样一个功能,可以在一个查询窗口中,连接到不同的服务器执行相应的 SQL 脚本。该功能在临时对多服务器进行自动化操作或批量处理时非常有用。

(打开一个查询窗口)-> 查询 -> SQLCMD 模式

如下,通过设置变量,我们在当前一个查询窗口中,就能一键配置好可用性数据库,是不是非常方便!

:setvar DBName xxxxxx:setvar PrimarySrv SQL01\SQL2012:setvar SecondarySrv SQL02\SQL2012:setvar BackuPath \\SQL01\software\bak\
:CONNECT $(PrimarySrv)BACKUP DATABASE $(DBName) TO DISK ='$(BackuPath)$(DBName).bak' WITH COMPRESSION,INITBACKUP Log $(DBName) TO DISK ='$(BackuPath)$(DBName).bak' WITH COMPRESSIONGO:CONNECT $(SecondarySrv)RESTORE DATABASE $(DBName) FROM  DISK = '$(BackuPath)$(DBName).bak'  WITH FILE=1, NORECOVERY,REPLACERESTORE LOG $(DBName) FROM  DISK = '$(BackuPath)$(DBName).bak'  WITH FILE=2, NORECOVERYGO:CONNECT $(PrimarySrv)DECLARE @SQL VARCHAR(500)SELECT @SQL = 'ALTER AVAILABILITY GROUP ['+name+'] ADD DATABASE [$(DBName)];'  FROM sys.availability_groupsEXEC(@SQL)GO:CONNECT $(SecondarySrv)DECLARE @SQL VARCHAR(500)SELECT @SQL = 'ALTER DATABASE [$(DBName)] SET HADR Availability GROUP = ['+name+']; '  FROM sys.availability_groupsEXEC(@SQL)GO


【GO 多次执行】


"GO" 不是 Transact-SQL 语句,但可以被sqlcmd 和 osql 及 SSMS 代码编辑器识别。"GO" 是批处理的执行命令,它可以重复执行多次脚本。如下,我们对同一个 SQL 语句执行了 10 次。它有什么好处呢?我们可以批量快速生成测试数据,这简单的语法可是非常有用的。

CREATE TABLE TAB(id int)GOSET NOCOUNT ONGOINSERT INTO TAB(id) SELECT 1GO 10
开始执行循环批处理执行已完成 10 次。


【已注册服务器】


对于大量的数据库服务器管理,如果你们公司还没有开发平台来管理,那么,你可以借助“已注册服务器”来管理。

视图 -> 已注册的服务器

如下图,你可以把你管理的数据库实例都分类整理好,这样你随时都可以连接到你想打开的实例。还有一个比较好的功能是,你可以右击文件夹目录“新建查询”窗口,在该窗口执行的脚本,都会在目录下的所有实例执行。这对于批量服务器执行相同的SQL语句非常高效!

图片

另一个小功能,你可以在已经连接的实例,一键将当前实例添加到“已注册服务器中”,如下图。

图片


【代理作业多服务器管理】


“已注册服务器”可以管理大量的实例,类似地,SQL Server 代理提供了一个“多服务器管理”的功能。该功能可以对大量的实例管理相同的代理作业。

SQL Server 代理作业(右键) -> 多服务器管理 -> 将其设置为主服务器

当你把当前的实例设置为主实例后,你可以添加目标服务器,目标服务器是从“已注册服务器”那里选择的,因此得先添加到注册服务器。

图片

当你创建作业的时候,你可以选择是本地服务器、还是多台目标服务器,对作业的增删改等操作,都会同步到所有你选择的目标服务器上,管理也是非常方便的。

图片


【实时跟踪】


对于SQL的实时跟踪,大多数人想到的是 SQL Server profiler,或者扩展事件。这大可不必,SSMS 功能就展示了该功能,一键进行实时SQL跟踪显示。

XEvent探查器 -> 标准 / TSQL (双击)

双击即可打开跟踪。当然,生产环境可别乱来噢,会刷爆的!

图片


【模板资源管理器】


模板资源管理器,SQL Server 常用的一些 SQL 模板,对于初学者或者开发同事,这非常有用,你不必每次都上网查询某些 SQL 语法怎么写了,只需双击一下。

视图 -> 模板资源管理器

图片


【扩展事件导出到表】


扩展事件跟踪的一些信息,可存在缓存或文件中,但是临时查询或分析时,读取是比较麻烦的。SSMS 提供了一种临时导出扩展事件到表的方法。

实例:管理:扩展事件 -> 打开某个扩展事件 -> 扩展事件(SSMS菜单栏)-》导出到 -> 表

导出的表不用提前创建,定义好表名称就行。表中的每个字段都独立了,不再是 XML 格式,这很方便。

图片


【分屏】


当打开多个查询窗口时,又想同一界面查看,可以点击查询窗口的“Tab”栏进行拖动,可放置在不同的方向位置上。如下图,将2个查询窗口分别显示在左右侧,可同时查看,方便对比。

图片


【拆分(镜像屏)】


上面的分屏可能较多的同学知道了,但这个屏幕拆分可能就很少人知道了。查询窗口的右上角,有一个拆分符号,点击往下拉,就会出现两个内容一模一样的屏幕,上下屏都可以编辑,并实时同步显示。这对于代码较多,来回查看的比较时,是非常有用的。

图片


【浮动】


浮动创建也是非常有用的。当你不想看到一个SSMS完整工具界面时,可以把查询窗口拖动使其脱离SSMS。用这个小窗口操作也非常方便,执行SQL时按键盘上的“F5”即可。

图片


【刷新本地缓存】


你是不是经常发现有的数据库对象出现红色的波浪线,你知道这是什么意思吗?红色的波浪线说明该对象可能不存在,可是数据库明明存在该对象呢。这是由于本地缓存引起,只要刷新一下本地缓存即可变正常。

编辑 -> IntelliSense -> 刷新本地缓存

图片


【AutoRecover】


有时候我们操作SSMS时,工具突然崩溃、或者系统重启,我们写的脚本是不是就不见了?不一定,当你再次重启 SSMS 时,它会提示你是否恢复之前的查询窗口内容。那么我们在哪里设置保存和恢复情况呢?

工具 -> 选项 -> 环境 -> 自动恢复

图片


【活动监视器】


如果你没有监控服务器、没有脚本查看服务器资源使用情况,打开活动监视器是非常方便的,它收集了CPU、IO、批处理、进程、资源等待等信息,可以大致了解当前服务器的资源使用情况,通过当前窗口,可以方便快速解决我们遇到的问题。

图片

除了上面一些特色有用的功能,SSMS还提供了非常多的功能,使用户能在界面进行向导操作,非常友好。其他有用的功能,如维护计划、生成脚本、导出导入数据、SQL Server Profiler、调试、快捷键(如注释、大小写转换)等,这些功能熟悉之后,都能提高我们的开发或运维效率。

相关文章推荐

历史文章推荐

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值