输入要选择的输入对象名称是什么要输入什么呢?

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

Louis Davidson揭示了一些有用的提示功能可在开发过程中重构单个代码块或模块,这将提高代码质量减少繁琐的工作,使测试更简单有时甚至是全部三种功能。

SQL Prompt是我一直使用的工具用于代码完成和代码格式化任務,以至于在没有它的情况下编写查询感觉非常错误用JOIN编写SQL语句,它会自动建议ON条件在ORDER BY或者GROUP BY子句中,它有助于选择分组列审查一些醜陋的代码(也许是自己写的)用您喜欢的样式很好地格式化它。

但是SQL Prompt具有许多其他功能,这些功能我很少用但在需要的时候非常有鼡。本教程演示了SQL Prompt如何帮助“小规模” SQL重构任务该任务的范围通常仅限于您在本地工作的单批代码或代码对象。这些任务直接在SSMS查询窗ロ中执行并且可以帮助您以各种方式重构代码,这些方式在测试存储过程和对存储过程进行故障排除时非常有用这篇文章主要是教程嘚上半部分内容~

本文中的所有示例均从WideWorldImporters示例数据库的新恢复的副本开始。

提示:将光标置于别名或变量上从上下文菜单中选择“重命名別名/变量”,或按F2键然后输入新名称。当前批次或对象中的所有匹配项均已更改

有时,程序员为变量或别名选择了较差的名称我已經看到@I,如果仔细检查可以更有效地将其称为@EnableSystemFunctionsSetting。我们一次又一次地感到内疚当您需要快速进行编码时,标准往往会失效而我们常常莣记暂停,并仔细考虑可能使用的最佳名称

下列代码显示了一个应用程序。Cities$List存储过程后面是第二个批处理(只是为了演示这种重命名的笁作方式)假设您想将@CityName重命名为@CityNameLike,使用户清楚的知道他们可以传递LIKE表达式

当然,一种久经考验并几乎是正确的方法是查找并替换(Ctrl + H)但是,如果您不注意可能会导致一些参数意外地重命名为@CityNameLikeUpperCaseFlag,并且在当前对象的预期范围之外重命名参数和变量

使用SQL Prompt的重命名别名/变量重构,您可以更精确地执行此任务突出显示@CityName的出现项,或将光标放在其上它仅突出显示当前范围内@CityName的另一确切出现项。与查找和替換不同它不会突出显示任何不完全匹配的内容,并且不会触及第二批

现在,右键单击选择重命名别名/变量按F2,然后在矩形框内看箌变量时键入替换名称CityNameLike,然后按Enter以“提交”更改名称如果输入有误,则可以使用单个“撤消”(Ctrl-Z)修复损坏

接下来,您可能需要将Cities表的别名更改为较短的名称例如c。如果单击的任何实例Cities则SQL Prompt将突出显示其他实例,但由于Cities不是别名因此SQL Prompt的Rename Alias / Variable方法将不起作用。不过这佷容易解决。只需建立Cities一个别名然后突出显示它并点击F2即可

替换Cities为c单击Enter,新代码将如下所示

查找未使用的变量和参数

提示:在查詢窗口中,可以选择突出显示代码块从SQL Prompt菜单中选择“查找未使用的变量和参数”,或按(Ctrl BCtrl F),然后Prompt将在所有未使用的变量或参数下划線

在图3中,您可以在下面看到一条绿色的波浪线@CityNameValue(和过程名称稍后再介绍)。这是SQL Prompt代码分析功能可提醒我们注意已声明但从未使用過的变量。

即使您关闭了此功能(在使用非常大的脚本时有时也会这样做),您仍然可以使用“查找未使用的变量和参数”(Ctrl B + Ctrl F)并且茬@CityNameValue变量下方会看到相同的绿色波浪线,和相同的消息让我们简单地删除该变量声明,然后继续进行此代码的更多改进

SQL Prompt的许多内置代码爿段都包含$ SELECTEDTEXT $占位符。如果您在查询窗口中突出显示任何代码并调用这些代码段之一它将把选定的文本插入到代码段内的占位符中。例如我们可以将任何选定的代码插入:

  • 创建内联表值函数(citf

我将演示几个示例,并说明如何制作自己的代码片段就像这些一样,您可以通过几次击键进行调用

前面清单中第一行代码下的另一条绿色花样是另一个SQL Prompt“警告”,该代码提示其内置代码分析规则之一在这种情況下,这是一种样式规则(ST003)建议将过程主体包含在中BEGIN…END中。

这不是存储过程的要求但是正如规则(ST003)中的说明告诉我们的那样,多荇用户定义函数需要它因此保持一致是一个很好的做法。无论如何我认为一个BEGIN…END块有助于弄清楚什么是对象中的代码,哪些不是对象嘚代码

要解决此问题,只需在过程中突出显示查询然后从SQL Prompt的“操作”菜单中调用be片段即可。或者对于BEGIN…END、 WHILE 和IF,您只需右键单击代码然后从上下文菜单中选择“环绕声”(Ctrl-KCtrl-S

现在,BAM过程主体位于一个BEGIN...END块中。在进行此操作时我还使用了“插入分号” 操作向该END语呴添加了分号。

SQL Prompt还可以轻松地以视图、内联表值函数或公用表表达式的形式将查询重构为可重用的逻辑例如,突出显示清单4中的查询…

並调用cv(创建视图)代码段您的查询现在包含在视图定义的开始部分。

这很好地提醒了视图定义的重要部分并且在给它命名后就可以茬这里正常工作,但是在大多数情况下这只是一个基本的起点。另外没有语法验证,因此您可以很高兴地调用cv片段将清单6转换为视图即使它不会编译,因为没有变量声明即使有,也没有变量在视图中允许

相反,您可能需要使用“创建内联表函数”(citf)代码段

同樣,这是创建函数的一个有用的开始特别是因为我经常忘记创建任何类型函数的语法,但是当然如果需要,您仍然需要处理@CustomerId变量并将其作为参数

使用自定义片段进行重构

您可以轻松构建自己的代码片段来重构一段代码。例如我经常需要做的一件事就是使用多行注释苻号注释掉大块代码。

这是一个非常简单的自定义代码片段要创建它,只需浏览SQL Prompt | Snippet Manager…| New…为代码段添加一个初始名称和说明,然后输入代碼段代码创建此代码后,我只需要突出显示要注释掉的块从“提示操作”列表中选择“co”,文本将被包含在注释中我还将看到谁注釋掉了文本,并且什么时候

对于这样的代码段,我还可以看到很多其他用途例如变量声明(我创建了多少次@msg保存一条THROW语句的消息?)

內联执行:重构以进行测试

提示:在查询窗口中突出显示存储过程的EXEC命令、标量函数或sp_executesql函数,然后从右键单击内容菜单中选择Inline ExecSQL Prompt用等效嘚内联代码替换它。

假设我们要测试应用程序Cities$List存储过程因此我们对该过程的调用进行了编码,如下所示:

这会返回大量数据并且您想哽深入地看一下代码,因为感觉有些不对劲突出显示Cities$List,右键单击并选择Inline Exec该过程的参数将被转换为变量,并将使用您传入的变量值(或鍺默认值如果您已经省略了一个参数,就像我一样)如清单9所示。

这可能不是要做的最复杂的重构但这是一项常见而繁琐的任务,尤其是当您有很多参数并且一个或多个具有默认值时

SQL Prompt包含许多不错的工具,可以帮助您重构代码这些工具都很小,很容易每天使用莋为程序员,有时很难不仅仅依赖于查找和替换但是在SQL Prompt中,我发现更多类似这些工具的工具时在做事不那么简单的情况下,我发现它們越有用

VIP专享文档是百度文库认证用户/机構上传的专业性文档文库VIP用户或购买VIP专享文档下载特权礼包的其他会员用户可用VIP专享文档下载特权免费下载VIP专享文档。只要带有以下“VIP專享文档”标识的文档便是该类文档

VIP免费文档是特定的一类共享文档,会员用户可以免费随意获取非会员用户需要消耗下载券/积分获取。只要带有以下“VIP免费文档”标识的文档便是该类文档

VIP专享8折文档是特定的一类付费文档,会员用户可以通过设定价的8折获取非会員用户需要原价获取。只要带有以下“VIP专享8折优惠”标识的文档便是该类文档

付费文档是百度文库认证用户/机构上传的专业性文档,需偠文库用户支付人民币获取具体价格由上传人自由设定。只要带有以下“付费文档”标识的文档便是该类文档

共享文档是百度文库用戶免费上传的可与其他用户免费共享的文档,具体共享方式由上传人自由设定只要带有以下“共享文档”标识的文档便是该类文档。

电脑个别软件文件名为乱码PPT插叺对象,输入对象名称是什么不能输入中文输入中文就是“?”(有几个汉字就有几个问号)可以输入英文和数字。... 电脑个别软件文件名为乱码PPT插入对象,输入对象名称是什么不能输入中文输入中文就是“?”(有几个汉字就有几个问号)可以输入英文和数字。

偠复制演示文稿中的幻灯片请先在普通视图的“大纲”或“幻灯片”选项中,选择要复制的幻灯片(如果希望按顺序选取多张幻灯片請在单击时按Shift键;若不按顺序选取幻灯片,请在单击时按Ctrl键)然后右击鼠标,在弹出的快捷菜单中执行“复制幻灯片”命令或者直接按下“Ctrl+shift+D”组合键,则选中的幻灯片将直接以插入方式复制到选定的幻灯片之后

你对这个回答的评价是?

采纳数:2 获赞数:0 LV2

可能是你的电腦的编码有问题你的电脑可能使用了其他的字符集,国际通用字符集是UTF-8你的电脑可能使用了其他字符集。

还有一种可能就是你的硬盘鈳能存在问题你可以进行格式化分区(如果格式化了系统盘,请重装系统)

本回答被提问者和网友采纳

你对这个回答的评价是?

可以嘚想怎么弄就怎么弄

你对这个回答的评价是?

采纳数:1 获赞数:6 LV2

富强民主和谐富强民主和谐富强民主和谐富强民主和谐民主和谐富强民主和谐富强民主和谐富强民主和谐富强民主和谐民主和谐富强民主和谐富强民主和谐富强民主和谐富强民主和谐民主和谐不知道不知道不知道不知道不知道不知道

你对这个回答的评价是

你对这个回答的评价是?

我要回帖

更多关于 输入要选择的对象名称 的文章

 

随机推荐