在SQL Studio中自动完成

发布于:2021-01-14 09:27:00

0

89

0

SQL Studio

长期以来,我一直希望SQL编辑器具有强大而即时的自动完成功能。它从来没有来过-所有数据库管理器中的自动完成都是非常基本的。

让我们看看我们在SQL Studio中准备了什么。

我们在FROM子句-标准中提供表自动完成功能。但是,我们进行了一些创新以提高生产率。

键入SELECT后,我们会立即提供一个表列表,然后扩展到SELECT * FROM table。

当您在FROM子句中编写联接时,我们知道表的关系,并基于联接表中的实际外键提供ON表达式。

完全支持WITH子句公用表表达式。自动完成功能不仅可以在WITH子句项的SELECT语句中工作,而且还在所有支持WITH子句的语句中在需要时提供CTE。

扩展列提供

  • 星号(*)

  • 每列

  • 所有列(以逗号分隔)

如果您的表是别名,我们将使用这些别名来限定列。

我们的自动完成引擎实际上依赖于我们的静态分析引擎。我们在复杂语句的所有部分中跟踪作用域和声明,仅提供在该特定范围内有效的项目。

对未来的计划

很久以前,在名为SQL格式的SSMS扩展中,我构建了一个自动完成引擎,该引擎在每个项目旁边提供了复选框。我们还将在SQL Studio中对此进行介绍。您将能够选择带有空格的项目。然后,按Enter将立即展开所有内容。对于列,您将获得一个逗号分隔的列表。对于表,您将获得带有正确ON表达式的INNER JOIN。

性能

为了使自动完成功能具有实时性,它需要在不到十分之一秒的时间内响应您的键入。在台式机上不到100毫秒的处理时间并不难。在键入浏览器并将结果返回到浏览器时在云中执行此操作并非易事。我们如何做到这一点正是另一篇文章的主题。