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

SQL语法提示工具SQL Prompt使用教程:使用SQL Prompt代码段执行重复任务(上)


SQL Prompt根据数据库的对象名称、语法和代码片段自动进行检索,为用户提供合适的代码选择。自动脚本设置使代码简单易读--当开发者不大熟悉脚本时尤其有用。SQL Prompt安装即可使用,能大幅提高编码效率。此外,用户还可根据需要进行自定义,使之以预想的方式工作。

点击下载SQL Prompt正式版


曾经有一段时间,我认为我不需要IntelliSense。毕竟,我可以在睡眠中编写T-SQL,完全了解大多数常用语法,而更复杂或不可思议的功能仅是快速的网络搜索。但是,SQL Prompt改变了主意。我开始使用其代码完成建议来建议连接条件,然后帮助填写GROUP BY子句,因此我对该工具的使用有所增加,直到我计算出现在至少每天可以节省数十分钟。

直到几周前,我都不认为我也不需要SQL Prompt代码段。但是,当我终于有时间了解它们的工作原理时,我意识到它们不只是为基本命令提供SQL文本片段的帮助者。一些简单的自定义片段可以节省很多我重复的任务,例如:

  • 插入重复的文本,例如注释块或分隔符
  • 插入每次都几乎相同的常用代码块
  • 运行实用程序代码(甚至是大批量)

在弄清楚这一点之后,我发现自己在创建和使用代码片段来完成许多我经常做的重复性任务。

什么是代码段?

如果您未安装SQL Prompt,则可以在此处免费获得试用版。如文档中所述,代码段为:“任何预定义的代码块,您都可以在当前光标位置或当前选定的SQL文本周围插入查询窗格中”。

摘录这个词对我来说意味着“小”。从“SQL Prompt”菜单中打开“代码片段管理器”,您将看到内置代码片段符合以下要求:

SQL语法提示工具SQL Prompt使用教程:使用SQL Prompt代码段执行重复任务(上)

每个预定义的代码段都是小的代码片段,例如用于创建或修改常见对象类型的代码片段,您可以通过几次击键调用这些代码片段,而不必键入整个片段。因此,例如,键入ct会调用“创建表”代码段,并插入CREATE TABLE语句的基本内容,而“ j ”代码段则可以节省繁琐的键入任务JOIN。我不太用这些内置片段。也许他们会在这里和那里为我省去一些按键操作,但是记住我所需要的代码片段的初始性可能会使我花费更长的时间。

但是,一旦我开始理解提示片段的工作原理,我意识到我可以构建自己的自定义片段,并且它们不一定需要小而简单(尽管其中有些是)。这样做可以消除很多重复,特别是在执行频繁的任务(例如添加注释标题、创建表或执行常用的元数据查询)时。他们对占位符(参数或多或少)的支持意味着我可以根据需要非常快速地替换各种对象的正确名称或查询参数的值。

分享片段

随着摘要的复杂性增加,您不妨与其他人分享。您可以将代码段文件夹重新定位到共享驱动器,如上例所示。我建议您使用文件共享系统(例如OneDrive或Dropbox)或源控制系统,以帮助防止一个团队成员以不可恢复的方式删除或修改代码段。

请注意,SSMS拥有自己的代码片段管理器,其中还包含用于构建常见对象类型的语法示例以及对模板的支持,了解SQL Prompt的代码片段的不同之处及其原因非常有用。

对我而言,最大的区别之一就是可用性。通过在查询编辑器中单击鼠标右键可以调用SSMS代码段,但是SQL Prompt的代码段的工作方式与其他任何IntelliSense帮助程序一样,使它们更加自然地工作。

用于插入重复文本的简单代码段

即使是非常简单的代码段,也可以从少量但频繁且重复的任务中删除令人惊讶的乏味。我很少回顾一段代码而不会感到需要做些小改进的冲动,例如通过添加标题注释来解释例程的意图,以及一组破折号来帮助将一些较大的代码分成逻辑部分。

通常,我只是第一次输入注释标题,然后使用复制和粘贴。相反,我现在从以下代码创建了一个Prompt代码段:

/******************************************************
$CommentHere$
******************************************************/
$CURSOR$

$字符表示的占位符,是参数值的替换点。$CommentHere$是一个自定义占位符,我可以在其中输入注释标题的文本,并且$CURSOR$是SQL Prompt的内置占位符之一,在这种情况下,它仅指定调用该代码段并填写了$CommentHere$占位符。其他内置占位符将执行特定操作,例如插入当前日期($DATE$)或连接的数据库的名称($DBNAME$)。

您可以通过打开我之前显示的代码段管理器从头开始创建代码段,但是要直接从此代码创建代码段,只需在SSMS查询窗格中突出显示该代码段,然后右键单击并从右键单击上下文中选择创建代码段。菜单(或从“操作”菜单,即您可以在左上角看到的下拉图标)中:

SQL语法提示工具SQL Prompt使用教程:使用SQL Prompt代码段执行重复任务(上)

这会将代码捕获到一个代码段中,自动检测任何占位符,并为其分配一个默认名称,在我的情况下为cc。我不喜欢这些简短的缩写,而是立即将其更改为更长但更易记的名称,并添加了说明:

SQL语法提示工具SQL Prompt使用教程:使用SQL Prompt代码段执行重复任务(上)

如您所见,“创建新代码段”对话框的一部分跟踪这些自定义占位符,您可以为每个自定义占位符提供默认值(例如,对于LIKE表达式占位符,您可以使用默认值'%')。

单击“保存”,然后在“选项”对话框上单击“确定”,然后转到SSMS。键入commentsection一词,并在键入时看到以下内容:

SQL语法提示工具SQL Prompt使用教程:使用SQL Prompt代码段执行重复任务(上)

完成键入注释部分的操作,或在菜单中选择它,然后按Enter调用该代码段,它将代码片段注入到光标所在位置的查询窗格中。现在,将选择$CommentHere$参数,您可以开始键入。如果代码中有多个具有相同名称的参数,则在您开始输入其中一个参数时,它们都会收到相同的文本。

SQL语法提示工具SQL Prompt使用教程:使用SQL Prompt代码段执行重复任务(上)

按下Enter键后,您的注释文本将被保存,并且光标将移至$CURSOR$占位符定义的位置。如果您需要输入多行注释标题,则只需使用Shift-Enter而不是Enter

您可以轻松扩展此示例,以为整个团队创建自定义评论标头。例如,您可以使用以下模板来标准化文件头:

名称:teamfileheader 
说明:LD-在每个SQL文件的开头使用此标头
代码段:

/****************************************************
Author:  $USER$
Date:    $DATE$
Purpose: $ScriptPurpose$
*****************************************************/
$CURSOR$

调用此代码段后,将使用登录人员的用户名,本地格式的日期(无时间)填写作者,您将能够描述脚本的用途。

本教程内容较多,分为上下两个部分,后续内容不断更新中,敬请期待~感兴趣的朋友可以下载SQL Prompt试用版免费体验!


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