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

DbForge SQL Complete 帮助 SQL 开发人员成为一流的 IDE 用户

starIconstarIconstarIconstarIconstarIcon

5.00/5 (1投票)

2013年4月12日

CPOL

9分钟阅读

viewsIcon

18599

在 SQL Server Management Studio 中进行编码不一定非要被视为二等公民,只要有合适的工具...

原生 SSMS 成为二等公民...

Intellisense 可以为快速开发锦上添花。关于范围特定变量的快速提示、语法建议、函数说明等等,为高效编码提供了宝贵的工具。

在 SQL Server Management Studio (SSMS) 中进行编码,随着版本的发布得到了极大的改进,但它仍然落后于 Visual Studio 的 intellisense、带有“填空”功能的模板插入的强大功能。此外,缺少自动缩进意味着对子查询和逻辑级别的对齐可能会非常耗时……特别是当团队中的每个人都不遵循完全相同的编码标准时。可读性很容易受到影响。Intellisense 有时无法正确更新,并将待处理的语句视为语法错误,从而禁用提示提供帮助。

作为一名开发人员,我一直在寻找提高编码体验和简化重复性编码的方法。其中一个工具是 SSMSBoost,它提供了 SSMS 所忽略的许多宝贵的快捷方式和功能。SSMSBoost 团队为其开发人员同仁提供了免费的社区版,并及时响应反馈。我强烈推荐查看一下

然而,SSMS Intellisense 的改进是开发人员可以寻求改进的最强大、最高效的编码工具。这个工具可以为早上还没喝够浓咖啡、头脑不清醒的开发者提供快速提示!

比竞争对手更胜一筹?

在我寻找编码工具的过程中,我审查了该领域中的三个主要竞争者:ApexSQL Complete、Red Gate SQL Prompt 和 DbForge SQL Complete。对我来说,最好的工具最终是 DbForge SQL Complete。该产品弥补了 intellisense 改进的空白。我已将其安装在 SSMS 2012 中,这是一个改进的环境,开发人员可以使用它,同时仍然可以与 SQL Server 2008R2 一起工作。

ApexSQL Complete 以免费形式提供给社区,并具有一些强大的格式化功能。然而,我从未能够让格式化真正匹配 Red Gate SQL Prompt 和 DbForge SQL Complete 的干净结果。此外,ApexSQL Complete 最初存在一些滞后问题,虽然最近的版本似乎有所改进,但仍然比其他工具更容易妨碍使用。它们的对象信息提示非常基础,格式也不好。

Red Gate SQL Prompt 是一个优秀的产品,评价很高。然而,格式化配置文件中提供的自定义选项非常有限,似乎侧重于简单性而不是提供完全的控制。它似乎也有一些未经打磨的边缘,例如输入 INSERT INTO TABLE,在接受 intellisense 提示后会提供列和值的模板,但插入的内容并未遵循您设置的相同格式标准,因此更难使用。与其他人相比,它也是一个昂贵的选择,专业许可证仅一年的升级和支持就超过 300 美元。

DbForge SQL Complete 为我的需求提供了最佳解决方案。提供的自定义程度令人难以置信,最终结果是一个强大的格式化工具,具有惊人的效果,还有一个真正改善我编码体验的 intellisense 工具(足以让我想与他人分享这个工具!)。此工具也兼容 Visual Studio,因此现在在 Visual Studio 中进行 SQL 工作的人们将拥有一个出色的工具来弥补 VS 在 SQL 开发方面的不足。

在审查该工具之前,我还要提到 DBForge 提供用户投票/论坛,我几乎对每一个问题都立即得到了反馈。他们的沟通似乎是一流的,此外还为他们的产品提供特别计划和折扣。我发现的一个格式化方面的错误在一个新更新中不到 2 周就得到了解决。这是一家响应迅速的公司!

程序链接

本次评测基于完整版进行。社区还提供了一个 express 版作为服务。该工具拥有完整版部分功能,可以满足渴望的开发者的胃口。完整版提供免费试用……但请注意,在此之后,您将无法对原生 SSMS 功能感到满意!

通用选项 - 通常无聊但并非完全无聊的内容!

展示了对 SSMS 编码环境的改进。用于刷新 intellisense 缓存的快捷方式、格式化选项、执行当前选中语句的命令、大纲显示文档结构、代码段管理和反馈。我将只审查对我的影响最大的部分,因为大部分内容都是不言自明的。

特别值得注意的是“自动触发延迟”选项。对于希望 intellisense 只在长时间停顿后提供帮助而不希望在输入时不断更改的用户来说,此选项非常有用。将 ms 设置为更长的时间将阻止框出现,除非按下命令来启动 intellisense 显示(默认:Control-Space)。

高亮显示匹配项是 Devart 添加的一个很棒的功能。当在查询编辑器窗口中选择某个特定对象时,会高亮显示其他匹配项,以便于查看。

自动别名生成是开发人员的又一大福音。SQL Complete 会在从 intellisense 中选择对象时自动为您生成别名。这也意味着之后选择列时会自动分配正确的别名,减少了输入量。

select 
*
from
company c -- this alias was auto generated when selected 

无缝快捷键带来 SSMS 满意度

别名生成功能强大,但被 SSMS 原生 Intellisense 所缺乏的、最简单但却非常需要的功能所掩盖:列选择和通配符扩展。将列名从对象浏览器拖动到结果列表中,列名会以逗号分隔,但不是垂直堆叠,它也不会处理同时拖动多个表的列,或“有限的列选择”。

SQL Complete 填补了这个空白。按 Tab 键可以扩展列,形成一个堆叠列表,并且别名已经正确分配。列选择会附加到同一行,但使用自动格式化工具,通过按下格式快捷键,最终列表可以轻松地垂直堆叠。这些是简单的例子,但我发现当我处理涉及多个表的复杂查询时,它们非常有用。扩展所有可用列或选择,并正确生成别名,是 SSMS 开发环境的一大改进。

Insert 语句可以“自动完成”,有助于快速生成语句,这真是救命稻草!

提示还帮助开发人员了解对象/视图的表结构、存储过程参数和函数用法。也许可以节省一些人去 MSDN 搜索以提醒自己关于正确的函数用法!

与原生函数提示进行比较

代码段模板成为现实... <脑洞大开的时刻>

代码段工具有助于节省打字,但直到现在,它们通常仅限于粘贴文本。Visual Studio 带有通过 Tab 键导航的字段选择的完整功能代码段功能,在 SSMS 中一直不存在……直到现在。

SQL Complete 带来了代码段,并极具细节考量。代码段不仅被带入我们的编辑器窗口,而且还显示在 intellisense 中,并提供了“字段”供导航以“填空”。提供了可自定义的变量,这里的潜力是无限的!

下面我将演示一个游标代码段。我完成此操作所使用的按键次数仅为:

cu + Tab
@MyCustom + Tab + custom_name_i_entered_in_one_place  

总按键次数 = 48(10.9% 成本)

不使用插件的总按键次数(且无错误)= 440(89.1% 成本)

您会保留一个成本高出 89% 的执行计划版本……多按 392 次键吗?

轻松格式化

手动格式化 SQL 代码可能很痛苦。有一些在线工具提供有限的功能,但谁真的想用生产代码使用基于 Web 的格式化工具?SSMS 的格式化插件数量有限。解析 SQL 语句的逻辑结构不像在 C# 中缩进 foreach 循环那么简单。

SQL Complete 提供了我用过的最好的 SSMS SQL 格式化程序之一。自定义程度非常高。提供了一些截图,但我不会深入探讨所有自定义级别,而是为您提供一些 SQL Complete 美化的 MSDN 代码示例。格式化可以在选定的部分或整个文档上运行。

设置可以保存,这样团队就可以轻松共享格式化标准。这将避免每个人都必须手动配置所有设置,这是任何团队设置中的一大优势!

丑小鸭 SQL 变成了您会引以为傲的美化 SQL

以下是格式化工具在从简单查询到复杂的递归 CTE 的过程中的一些示例。我相信这个工具处理得非常出色!

之前

之后

之前

之后:* union 处理了换行

之前:复杂的 CTE

之后

最终想法

还有其他功能,例如在查询窗口中选中对象时自动在对象浏览器中查找对象、大纲显示文档、基于上下文的 join 语句等。我只涵盖了我认为对我的工作流程影响最大的功能。

SQL 开发人员应该考虑寻找一个工具来增强 SSMS 中的开发过程。一旦您使用过这样的工具,您就会发现改进之处可以帮助您专注于更重要的事情。花费时间思考“对齐”代码是对时间的浪费,而开发人员可以专注于内容。通过按快捷键将所有代码格式化为相同的对齐方式,也可以让您不必专注于试图辨别他人的格式标准,而是可以专注于重要工作!

Devart 对反馈的持续改进和响应以及解决我的问题,让我给他们的产品一个竖起两个大拇指的奖励!

免责声明

我不为 Devart 或任何竞争产品工作。我审查了这个程序,因为它让我信服了它的价值,并且我想参与他们的“High Five”计划,该计划帮助喜欢其产品的开发人员与他人分享,并在完成产品评论后有资格获得折扣/奖励。我认为这个工具很有用,并且改善了我使用 SSMS 的体验。我希望其他 SQL 开发人员也能受益,特别是那些不知道有如此棒的插件可用的开发人员。谢谢!

历史

2013-04-12 初始创建和提交

© . All rights reserved.