65.9K
CodeProject 正在变化。 阅读更多。
Home

SQL Prompt 评测

starIconstarIconstarIconstarIcon
emptyStarIcon
starIcon

4.38/5 (8投票s)

2015年10月14日

CPOL

6分钟阅读

viewsIcon

15234

我喜欢能为我和我的团队节省时间的工具,而这最终意味着为我的雇主节省金钱,我将继续向您展示 SQL Prompt 如何做到这一点。

我的工作

我目前在一个大型政府医疗服务整合项目中担任首席信息架构师,可以说在工作时间我大部分时间都离不开 SQL Server Management Studio (SSMS) 和 Visual Studio (VS)。我也是 Redgate 工具的粉丝,今天我想分享一下我对 SQL Prompt 的喜爱。我喜欢能为我和我的团队节省时间的工具,而这最终意味着为我的雇主节省金钱,我将继续向您展示 SQL Prompt 如何做到这一点。

SQL Prompt 的功能

我正在使用的是 SQL Prompt 的 7.0 版本,您可以在此处免费下载 28 天试用版:http://www.red-gate.com/products/sql-development/sql-prompt/

SQL Prompt 的主要功能包括

  • IntelliSense 式代码补全
  • 可自定义的代码格式化
  • 代码片段库
  • 重构 SQL 代码
  • SSMS 标签页历史记录
  • SSMS 标签页着色

IntelliSense 和格式化

让我们从 IntelliSense 开始。与 SSMS 和 VS 的原生体验相比,此功能有了巨大的改进。正如您在下面的图表中看到的,SQL Prompt 的弹出窗口中提供了足够多的信息。

我喜欢它的建议工作方式,您可以使用上面图表中第一个弹出窗口底部的下拉列表来过滤这些建议。我在示例查询中使用了 `*` 通配符来选择所有列,以便向您展示我最喜欢的功能之一。将光标放在 `*` 的末尾,然后按 Tab 键即可展开列列表,如下所示

从那里,我可以轻松编辑列列表,从而在处理包含大量列(通常在查询中使用)的表时节省大量时间。在处理此查询时,我还想向您展示如何轻松更改格式。只需突出显示 SQL 代码,然后右键单击即可使您的查询看起来更整洁!

格式正确的 SQL 更易于维护,而 SQL Prompt 可让您在很大程度上控制您偏好的格式化方式。

代码片段

SSMS 已支持模板多年,这些模板允许您重用样板脚本来轻松创建数据库对象。SQL Prompt 通过实现代码片段库,将这一概念推向了更远。SQL Prompt 已内置了许多代码片段,激活代码片段就像输入代码片段定义(例如“st100”)以从表中选择前 100 行一样简单,如下所示

您可以轻松地突出显示现有查询,并使用占位符将其转换为代码片段。内置占位符是保留字,它们是特定信息的变量,或者它们代表可以应用于您代码片段的操作。要了解它们的结构,只需打开代码片段管理器并查看现有代码片段的定义。您还可以创建自定义占位符,这些占位符基本上是自由文本字段。Alasdair Daw 在这里有一篇精彩的文章,探讨了这个强大功能的细微之处:http://www.red-gate.com/blog/snippet-manager

创建代码片段的能力对于重复性任务非常有用,但在您重新发明轮子之前,请务必查看 Gaurav Vohra 在 Git 上的有用代码片段存储库

https://github.com/gvohra/sqlpromptsnippets

我之前提到了 SSMS 模板,我想指出的是,您还可以在 SQL Prompt 代码片段中使用那些模板参数。Redgate 的友好同事在这里提供了一个出色的教程

http://documentation.red-gate.com/display/SP7/Using+SSMS+templates+in+SQL+Prompt+snippets

重构

重构代码的能力是任何工具集中最有价值的功能之一。我经常发现自己正在处理使用糟糕或(在大多数情况下)没有命名约定或一致编码标准的大型遗留系统。我之前在展示 SQL Prompt 的格式化功能时提到过,格式良好的代码更容易维护,从而节省时间并最终节省金钱。

SQL Prompt 具有许多强大的重构功能,首先是智能重命名,它允许您右键单击并重命名对象而不破坏依赖关系。这使得更容易将命名标准应用于现有表、视图、存储过程和函数以及它们各自的列名和参数。您还可以重命名脚本变量。

我一直是数据库项目中使用存储过程的倡导者,SQL Prompt 支持将任何有效的 SQL 块突出显示并将其封装到存储过程中。

我目前正在处理的系统始于我们的团队继承了一个遗留系统。通过使用上述功能,这使我们能够及时地正确命名和格式化脚本和数据库对象。我们还有机会极大地改进了数据库的规范化,这需要将几个现有表拆分为两个或多个表。SQL Prompt 在支持此操作方面为我们提供了救援

http://documentation.red-gate.com/display/SP7/Splitting+a+table

选项卡

标签页历史记录(SQL 2008 或更高版本)是一项很棒的功能,它可以存储您打开的标签页列表,让您轻松返回到它们,还可以从列表中重命名或删除它们。这似乎很简单,但随着年龄的增长,我有时会忘记我在商场停在哪里,所以有一份历史记录列表对我来说很有帮助。

我将用新添加的彩色标签页(SQL 2012 或更高版本)来结束我对 SQL Prompt 功能的介绍。这使您可以为标签页选择不同的颜色,以代表不同的服务器或数据库连接,如下图所示

正如您可能想象的那样,当您需要在不同环境中工作并且需要停止在一个错误环境中运行脚本的混乱时,这项功能真是太棒了。这是另一项简单的功能,它通过支持数据库和服务器组级别的着色以及对通配符匹配的支持来消除混淆。您可以在此处阅读有关此出色新功能的更多信息:https://documentation.red-gate.com/display/SP7/Coloring+query+tabs

与 Visual Studio 集成

我们已经看过的大部分出色功能以及更多功能在 VS 中也可用。正如您从下面的图表中看到的,SQL Prompt 在 VS 开发环境中添加了一个菜单项,就像我们在 SSMS 中一样,并在您访问弹出菜单时添加了其他条目。

结论

我使用 Redgate 工具已有 10 多年了,Redgate 团队在 SQL Prompt 上做得非常出色。SQL Developer Bundle,其中包括 SQL Prompt,是我为我的数据库管理员和架构师团队购买的第一批工具之一,当时我开始了当前的项目。我可以诚实地说,这些工具为我们节省了数百个工时,并多次收回了购买成本。

您可以在这篇优秀的文章中阅读有关 SQL Prompt 的投资回报率的更多信息:https://www.red-gate.com/assets/INTERIM/assets/products/sql-prompt/documents/sql-prompt-roi-guide.pdf。此产品可免费试用 28 天。只需点击此链接:http://www.red-gate.com/products/sql-development/sql-prompt/

© . All rights reserved.