logo SQL Prompt教程 我也要发布文档

语法提示SQL Prompt教程:SQL生产力功能“代码完成”和“IntelliSense”


SQL Prompt是一款实用的SQL语法提示工具。其根据数据库的对象名称、语法和代码片段自动进行检索,为用户提供合适的代码选择。自动脚本设置使代码简单易读--当开发者不大熟悉脚本时尤其有用。SQL Prompt安装即可使用,能大幅提高编码效率。

点击下载SQL Prompt试用版

有个老笑话说,升级到最新的SQL Server在某些DBA上是浪费的,因为它们仍将主要坚持在SQL Server 2005中起作用。根据我的经验,这种类型的DBA变得越来越罕见,但是我们很多人没有从我们的SQL Server工具中获得“全部功能”的观点是有一定道理的。当它们“开箱即用”时,我们会与他们合作,并且仅使用其功能的一小部分。探寻“新事物”的时间,至少与我们想要的一样,仍然难以捉摸。

SQL Prompt是一个很好的工具,可以帮助个人开发人员以及整个团队在编写SQL时提高工作效率。但是,我怀疑许多用户从未发现它的许多功能,尤其是较新的增强功能。对于他们使用的零件,他们并不总是花时间来研究如何配置和控制其行为以最适合其需求。

如果您的情况如此,希望本文对您有所帮助。我将介绍Prompt最著名的生产力功能,代码完成和IntelliSense,尤其是我如何控制其工作方式以适应我的需求。然后,我将简要介绍一些“鲜为人知”的功能,这些功能可以提高团队的工作效率,并有助于防止不必要的错误以及从错误中恢复所造成的时间损失。

更快地编写SQL

作为数据库开发人员,我需要提高工作效率,而且我一直都在使用SQL Prompt的代码完成和IntelliSense功能。是的,IntelliSense在SQL Server Management Studio中是本地可用的,但是除了列出可用对象之外,它所做的只是其他事情。

SQL Prompt的IntelliSense更有用。它为列和表提供自动完成建议,帮助填写JOIN条件,GROUP BY子句,显示对象定义和依赖项等。当然,作为开发人员,由于我们将大量使用它,因此我们将希望能够精确控制此功能的工作方式,以优化生产力。

最近的一项增强功能是,使最近使用最多的对象上升到建议框顶部的选项。和往常一样,我们可以在“SQL Prompt选项”菜单中进行配置,在这种情况下,可以在“建议” >“行为”中:

语法提示SQL Prompt教程:SQL生产力功能“代码完成”和“IntelliSense”

在下面的示例中,我输入了前面的两个查询,第一个查询在users表上,第二个查询在sales表上。现在,当我在第三个查询中键入内容时,我看到sales和users表是列表中的前两个建议,用灰色细线将其与其他选择分开。

语法提示SQL Prompt教程:SQL生产力功能“代码完成”和“IntelliSense”

建议” >“行为”部分包含其他有用的选项,例如,使我们可以控制何时弹出建议框,显示对象定义框等。另一个相对较新且简单的增强功能是“使弹出窗口透明... ”选项。当您在查询中间进行编辑时,这很有用,否则弹出建议框会掩盖查询的其余部分。当您需要进行的更改与隐藏的语句相关时,这尤其令人烦恼。只需按Ctrl键,弹出框就会暂时透明。

语法提示SQL Prompt教程:SQL生产力功能“代码完成”和“IntelliSense”

您还可以在“建议”部分的其他位置找到其他有用的控件。例如:

  • 建议 > 连接——控制为其提出建议的数据库和模式。这可以立即消除很多“噪音”

  • 建议 > 连接条件——指定建议JOIN条件的条件

改善SQL标准

除了IntelliSense之外,SQL Prompt还有很多事情要做。它还提供了一组有助于改善SQL编码标准的功能,例如自动格式化、可重复使用的代码段以及代码分析。在每种情况下,这些功能均旨在允许您定义团队标准,然后共享它们并一致地实施它们。

这些功能使SQL Prompt成为了出色的团队协作工具。它们帮助我与开发人员合作,灌输良好的SQL编码实践,防止重复,并减少将其转化为生产代码的代码问题。

之前我有描述过这些功能,现在就不赘述了。但是,值得经常检查发行说明和文档,因为对这些功能进行更改和添加非常频繁。例如,对于代码分析,SQL Prompt现在将自动修复越来越多的一些较简单的代码问题。

避免意外丢失数据

在作为DBA的职业生涯中,我一直想严格控制谁可以从SQL Server Management Studio访问我们的生产SQL Server实例。但是,尽管存在明显的危险,但通常很难劝阻组织不要允许人们使用这种“快速、简便”的方式进行更改。我一直在努力寻找更好的选择。安全地进行修复,进行测试然后优雅地发布它们的过程。但是,改变主意并不容易,尤其是在经常重复“所有客户都应该通过SSMS访问”之类的组织中。当然,有时负责生产数据库性能和数据安全性的DBA除了直接进行紧急修复外,别无选择。

对于所有这些情况,SQL Prompt都具有一些有用的功能,这些功能可以保护我以及任何直接访问登台服务器或生产服务器的开发人员,避免意外地进行破坏性的数据库更改,或意外删除对象或数据,或者进行更多操作。错过了重要的过滤条件,因此进行了超出预期的广泛更改。要“消除”此类事故的影响,可能需要花费数小时的艰苦工作。

SSMS选项卡着色

此功能将根据连接的每个选项卡所使用的服务器或服务器类型,对查询窗格顶部的每个“标签”以及底部状态窗格进行颜色编码。一旦您习惯了亮红色的标签表示“我已连接到生产服务器” 的想法,在连接到“错误”服务器的查询窗格中意外执行代码就变得更加困难!

执行警告

有许多方法可以无意或以其他方式破坏数据或对象。您突出显示DELETE或UPDATE语句,但不小心忽略了该WHERE子句。您的代码中有不需要的DROP或TRUNCATE命令,可能是一些测试代码的残迹,或者是一些未经测试且不正确的代码,它们会根据某些业务逻辑修改数据。从本质上讲,没有办法在不实现附加逻辑或不使用触发器的情况下停止执行此类命令。

当我们尝试执行可能导致意外更改或数据丢失的无条件命令时,SQL Prompt的执行警告可以提醒我们。这个想法基于语法检查引擎。该工具可以嗅探该命令,并且可以检测以下情况并提出警告:

  • UPDATE或DELETE没有WHERE条件的语句,包括用于,INNER JOIN创建或更改过程或触发器时的条件。

  • DROP和TRUNCATE声明(v9.5.6及更高版本)

例如,以下DELETE语句将从表Table1中删除ID值与表Table2中所找到的那些行匹配的所有行:

DELETE FROM T1
FROM
    dbo.Table1 AS T1
    JOIN dbo.Table2 AS T2 ON T1.ID = T2.ID;

默认情况下,当我们对以下语句单击“执行”时,SQL Prompt将发出警告:

语法提示SQL Prompt教程:SQL生产力功能“代码完成”和“IntelliSense”

但是,由于我多次使用这种语句,因此对于生产率而言,禁用此类警告的能力也很重要。您可以从“选项”菜单(“建议” >“警告和突出显示” >“执行警告”)控制SQL Prompt将发出哪些警告。如前所述,即使启用这些警告,早处理临时对象时也不会引发这些警告。

语法提示SQL Prompt教程:SQL生产力功能“代码完成”和“IntelliSense”

在每种情况下,如果您决定不继续执行该语句,则会看到一条绿色的波浪线和一个工具提示,解释了为什么发出警告。这是一个DROP声明的示例:

语法提示SQL Prompt教程:SQL生产力功能“代码完成”和“IntelliSense”

结论

SQL Prompt是一个很棒的SQL生产工具。我特别喜欢它经常对其所有功能进行改进,因此,值得一提的是使用UserVoice服务要求某个功能或增强功能。

我喜欢这种方法。每天都在使用SQL Server的最终用户共享他们的知识,并要求进行更改,团队会做出回应,从而使产品变得更好。这就是为什么多年来SQL Prompt已成为开发T-SQL代码的最佳工具之一的原因。

本教程内容到这里就结束了,希望文章内容对您有所帮助~您也可以下载SQL Prompt试用版进行评估~

相关内容推荐:

SQL Prompt系列教程>>>


想要购买SQL Prompt正版授权,或了解更多产品信息请点击“咨询在线客服”

1024致敬程序员,慧都18888元大礼包全场送,活动详情点击下方图片

30a3147b29e3cd4e58f7d0fb83ba1e21.jpg