偶尔,错误会发生。 您意外地关闭了一个SSMS查询选项卡,却没有在意识到它包含了一段重要的代码之前保存它。 您工作到很晚,在测试服务器和开发服务器之间切换,并意外地对错误的服务器执行代码。 SSMS与你合谋,意外崩溃,你失去了所有当前打开的查询标签,其中一些你没有保存。

我们都去过那里。 我清楚地记得这样一个事件。 我在雷德盖特的办公室里工作,当我几乎完成一个特别聪明的存储过程时,SSMS撞了我一下,一个路过的开发人员嘲笑我的愤怒。 过了一会儿,一个更高的实体也让它发生在他身上,所以在冷静思考了一段时间后,他在一个工具周项目中开发了结构化查询语言标签魔术。 它成为了一个狂热的工具,并最终成为了主流的一部分。

我将描述一些在SSMS工作的每个人都会经历过几次的常见灾难,以及“SQL提示”标签魔法(现在更通俗地称为标签颜色和标签历史(是如何为其后果提供”保险”的。

你是否曾经在工作到凌晨,在你的开发服务器上尝试一些东西,这样你就可以”向前滚动”生产数据库服务器,用最新版本解决一个紧急和尴尬的问题?

没有吗? 我也是,尤其是在八月的数据库管理员聚会上。 然而,它发生在我的一个朋友身上。 现在是凌晨三点,他很累,但仍在努力工作,试图解决一个网站购物车过程中的一个严重问题。 他在SSMS工作,一个查询窗格连接到开发代码,另一个查询窗格对生产服务器开放,显示相同代码的当前实时版本。

我,我的意思是我的朋友,必须在开发服务器上清空整个分类账表,重新插入测试数据,然后运行集成测试来验证他做了什么。 他在错误的查询窗格中执行了错误的代码。 他所做的错事几乎立刻打击了他,在行刑失败前的几秒钟,他的生命闪过他的脑海。 公司会损失多少小时的商业交易? 他从未如此感激自己的代码被违反约束”绊倒” .

当他思考他的侥幸逃脱时,他责备自己没有检查每个查询窗格的基础,该窗格显示连接的服务器的名称。 但是谁会例行检查呢? 肯定有更好的方法吧? 有一段时间,我(和我的朋友(开始使用不同的电脑同时与每台服务器一起工作。 即使在半睡半醒的时候,它也能很好地工作。 现在,我们都使用提示”标签魔法“,我们再也不会忘记在事务中运行任何有争议的东西,以防万一。

更一般地说,作为开发人员,您为什么需要在不同的服务器上工作? 我喜欢关注测试服务器,检查测试运行中测试团队不感兴趣的指标。 舞台表演也是如此。 不过,我需要非常小心。

SSMS的查询窗格顶部有一行选项卡标签,每个查询选项卡底部有一个状态窗格。 结构化查询语言提示符的”标签颜色魔法”组件将对这些标签进行颜色编码,以帮助您立即看到每个标签连接到什么服务器,或者是什么类型的服务器。 如果是当前标签,您选择的标签颜色是亮的,否则是暗的。

图1显示了我的SSMS会话,有三个查询选项卡。 在您的生产服务器上执行这段代码之前,您应该三思而行,这段代码是为您的开发服务器设计的!

面向开发人员的安全网络功能

图1

幸运的是,有了标签魔术着色,你将毫无疑问,因为连接到生产代码的标签的可怕的红色背景颜色,并感谢在查询窗口底部的状态栏。

面向开发人员的安全网络功能

图2

有几种方法可以将您的每台服务器或数据库映射到您为该环境类别选择的颜色。 最直观的方法是在浏览器窗格中右键单击服务器或数据库,但您也可以从本地注册服务器组浏览器或中央管理服务器浏览器中为服务器或服务器组执行此操作。

就我个人而言,我认为使用注册的服务器组是最整洁的,有两种方法可以将这些组映射到它们的环境中(因此还有标签颜色).

首先,您可以通过右键单击并选择来设置组的颜色 选项卡颜色(组( 并将其分配到一个环境中。

面向开发人员的安全网络功能

图3

选项卡颜色(组( 选项适用于需要连接到一个组中的多个服务器的查询窗格。 分配的环境颜色仅对从该组直接打开的查询选项卡有效。 把小组分配给 发展 (如图5所示),如果您打开一个查询标签并将其连接到一个实例,标签将不会是绿色的;它将是默认颜色,或者是在服务器或数据库级别的层次结构中较低位置分配的任何颜色。

但是,如果我使用该设置 选项卡颜色(组中的服务器( 选项,则连接到该组中某个实例的任何查询选项卡都将继承指定的颜色,除非我在单个服务器或数据库级别覆盖它。

最干净的方法是尽可能将你的任务安排在最高级别,然后将其他一切都设置为默认。 例如,在注册服务器组级别设置环境,然后确保 选项卡颜色(服务器( 设置为 系统默认值 对于该组中的每台服务器,然后 选项卡颜色(数据库( 设置为 系统默认值 对于这些服务器上的每个数据库。

您可以使用结构化查询语言提示符编辑SSMS内的所有标签颜色分配 选项>标签>颜色 窗户。 在此数据库实时同步 窗口中,您可以删除分配,这与将它们设置为默认值相同。 偶尔在这里登记并在需要时清理东西是值得的。

面向开发人员的安全网络功能

图4

如果内置集合不足,您可以使用此窗口添加需要的环境。 如您所见,也可以从这个菜单直接添加服务器,但是从SSMS的服务器上下文菜单中添加不太容易出错。

在捕捉图4中的截图之前,我已经添加了一个 沙箱 环境转换为现有的内置环境 编辑环境 提供我想要的名字和颜色。

面向开发人员的安全网络功能

图5

然后,我能够从上下文菜单中将其分配给我注册的本地服务器中的”沙箱”组。

只是偶尔,SSMS会消失。 您一直很忙,并且打开了大量的查询选项卡。 突然间,你不再有SSMS了。 你只差几分钟就能完成几个小时的代码。 现在看来,你还需要几个小时。 我在写这篇文章的时候设法做到了。

曾经有一段时间,我安慰自己说,我可能会在第二次写得更好,但接下来就是不得不这样做的单调乏味。 我的大脑一夜之间慢慢变空,就像一个漏水的放屁垫,所以这意味着在我忘记之前要熬夜重做。

标签历史是在像我这样的人物的脑海中发展起来的。 现在,我只是给一个自鸣得意的微笑,并点击提示”标签历史”按钮。 我觉得自己很像广告中那个令人难以忍受的家庭,当他们回家发现自己的房子被淹没时,只是甜甜地笑着,然后打电话给他们难以置信的保险公司。

诀窍是在灾难发生前访问” SQL提示”的”选项”菜单,然后点击”进入” 制表符 > 历史

面向开发人员的安全网络功能

图6

如果启用了标签历史记录,则您拥有SSMS保险单。 如果SSMS崩溃了,或者如果你只是鲁莽地关闭了SSMS而没有保存你打开的标签,那么,在重新启动时,SQL提示标签魔法将恢复你上次SSMS活着时打开的所有标签。 你会得到和上次看到时一样的工作。 应用程序保存所有的测试-SQL代码,就像你关闭或丢失它之前一样。 选项卡历史记录还可以将选项卡重新连接到以前连接的数据库。

启用标签历史后,您还可以防止其他一些常见错误的后果。

选项卡式查询窗格激增。 突然,你渴望生活少一些混乱,开始疯狂地清除所有的查询窗格,所有的默认名称都是 SQLQuery25 .结构化查询语言。 依次点击每个标签中的x . 点击— 是否保存对以下项目的更改? 没有。 单击—不。 单击—不。 哦不,等等! 那个标签 SQLQuery20 .结构化查询语言 拥有您花了很长时间开发的出色的表值函数,现在您删除了查询窗格,却没有保存文件。 所有的工作都没了!

没有。 标签魔术历史 保存了我正在做的工作。 点击 选项卡历史记录 SSMS应用程序菜单栏顶部的图标(或点击 Ctrl+Q).

面向开发人员的安全网络功能

图7

您可以筛选列表以显示所有选项卡,或者只显示打开的选项卡,或者只显示关闭的选项卡,并且只需点击 ctrl+右 箭头和 ctrl+向左 箭头。

您可以看到选项卡列表显示了文件名(如果您曾经保存过该文件的话),以及该选项卡所连接或曾经连接的SQL服务器,以及该服务器所属的环境,如您的 标签颜色魔法 配置。

只需将鼠标悬停在选项卡列表列中的每个选项卡上,或者使用向上和向下箭头,该选项卡的代码将出现在右侧窗格中。 在代码预览窗格的右上角,您将看到选项卡关闭的时间(如果您曾经关闭过它),在右下角,您将看到数据库以及它所连接的SQL服务器.

一旦你找到了你想要的代码,点击它,在标签列表中,或者只是点击输入,然后 SQLQuery20 .结构化查询语言 将被还原为打开的查询窗格,不会丢失任何内容。 当然,省省吧。

我一直在做。 哎呀,三周前我碰到了一个类似的问题。 最后我有了一个很好的解决方案,但是需要很长时间才能开发出来。 现在,它在哪里? 第一个任务是想出一个好的搜索词。 嗯。 它是如何将一个CLOB、一个JSON或者文本文件导入到结构化查询语言中。 我记得这是一个命令,但是语法是什么?

打开 选项卡历史记录 又来了。 当我试图查找我一直在处理的内容时,我喜欢像查询窗格一样大的选项卡历史。 在搜索栏中输入任何你能记住的关于”丢失”代码的重要信息。

面向开发人员的安全网络功能

图8

在这种情况下,我直接去了那里。 搜索词甚至以赭色突出显示。 单击列表项,将其读入查询窗格。 或者,你可以点击 标签 要将上下文切换到查询预览窗格( shift+制表符 换一种方式),然后 Ctrl+ACtrl-C 将代码复制到剪贴板上。

偶尔,你可能会有整理标签列表的冲动。 通过右键单击选项卡,您将看到一个上下文菜单,允许您重命名选项卡或将其从选项卡历史记录中删除。 如果您希望清除旧的选项卡,可以删除比右键单击的选项卡更早的选项卡。

在一个理想的世界里,你可能认为你不太可能需要标签历史或标签颜色。 你将在源代码控制中尽职尽责地保存你的工作,不做任何疯狂、混乱的事情,或者可能导致及格的杰出成员发出嘶嘶声。

事实上,SSMS是相当不受歧视的,它偶尔会喀嚓一声消失,通常是在你最意想不到的时候。 结构化查询语言提示标签魔术值得它的崇拜地位,因为它是为我们这些更了解但偶尔偷工减料的人设计的。 它驯服了SSMS,防止我们愚弄自己。 我很早就采用了标签魔法,从那以后我再也没有丢过工作。 我现在可以重复使用我以前做过的事情,从那以后,我再也没有错误地在生产服务器上做任何灾难性的事情。

相关文章: