快速入门:在 SQL 文件中使用内联 GitHub Copilot 补全功能

内联补全是键入 .sql 文件时显示的虚影文本建议。 它们来自 GitHub Copilot 模型,有助于你在输入时补全常见的 SQL 语句模式。 本文介绍内联补全能提供什么、它的主要局限(它无法查看你的数据库架构),以及何时应改用 @mssql 聊天参与者 来获取具备架构感知能力的建议。

内联补全无法查看已连接的数据库架构。 它们由GitHub Copilot模型直接生成,无需访问 MSSQL 扩展的架构上下文。 在编写 SQL 时,如需基于架构信息的建议,请使用 @mssql 聊天参与程序。 出于体系结构原因,请参阅GitHub Copilot如何使用 MSSQL 扩展

关键结论

  • 在编辑器中键入时,内联补全会生成虚影文本。
  • 它们适用于泛型 Transact-SQL(T-SQL)模式(联接、 SELECT 子句、常见函数)。
  • 它们 不会 引用连接的数据库架构。
  • 对于架构感知补全,请使用 @mssql 聊天参与者,而不要使用内联补全。
  • 智能操作图标Ctrl+I 键盘快捷方式在所选代码上调用GitHub Copilot。 它们与内联补全相辅相成。

先决条件

请确保已连接到数据库,并使用 MSSQL 扩展打开活动编辑器窗口。 连接时, @mssql 聊天参与者会了解数据库环境的上下文,并且可以提供准确的上下文感知建议。 如果未连接到数据库,则聊天参与者没有架构或数据上下文来提供有意义的响应。

以下示例使用 AdventureWorksLT2022 示例数据库,可以从 Microsoft SQL Server 示例和社区项目 主页下载该数据库。

为了获得最佳结果,请调整表和架构名称以匹配自己的环境。

确保聊天包含 @mssql 前缀。 例如,输入 @mssql 后跟问题或提示。 此前缀可确保聊天参与者了解你请求与 SQL 相关的帮助。

内联补全提供的功能

当你在启用了 GitHub Copilot 的 .sql 文件中键入时,虚影文本会以内联方式显示。 使用 TabEnter 接受;继续输入可忽略。

内联补全擅长:

  • 完成常见模式(SELECT * FROMINNER JOIN ... ONWHERE x = ?)。
  • 补全你已在文件中输入的部分标识符。
  • 生成常见 SQL 结构的样板代码。

内联补全擅长:

  • 使用数据库中真实的表名或列名(系统会根据上下文进行猜测)。
  • 尊重数据库的实际架构或关系。
  • 使用 @mssql 聊天参与者的架构上下文。

为什么内联补全不感知架构

Visual Studio Code 的内联补全应用程序编程接口 (API) 实际上是任何给定文档的单一提供程序。 启用 GitHub Copilot 后,第三方扩展(包括 MSSQL 扩展)无法为 SQL 文件提供架构感知的虚影文本。 幽灵文本直接来自 GitHub Copilot 模型。

这是平台行为,而不是 MSSQL 扩展限制。 有关完整说明,请参阅GitHub Copilot如何使用 MSSQL 扩展

编写 SQL 时获取架构感知建议

如需获取引用实际表、列和关系的建议,请使用 @mssql 聊天参与者。 聊天中的地址 @mssql

@mssql Write a T-SQL query that lists customers from SalesLT.Customer
who placed an order in the last 30 days.

聊天参与者在请求中包含架构元数据,因此建议引用数据库中的实际对象。

使用智能操作图标

在编辑器中选择 SQL 时,所选✨内容旁边会显示 智能操作 图标。 选择它以打开简短菜单:

  • 使用Copilot进行修改:使用内联建议重写所选内容。
  • 说明:获取所选 SQL 的自然语言说明。
  • /doc:为所选内容生成文档注释。
  • /fix:建议修复所选内容中的问题。

当你选择“使用 GitHub Copilot 审查”时,会显示一条内联建议:

显示 GitHub Copilot 中用于优化 Visual Studio Code 中的 SQL 查询的内联建议的屏幕截图。

使用键盘快捷方式

使用以下命令内联调用GitHub Copilot:

  • Ctrl+I(在 Windows 和 Linux 上)
  • Cmd+macOS 上的 I

将显示一个内联提示框,可在其中提问或请求对查询进行修改。

在Visual Studio Code中使用 Ctrl 加 I 键盘快捷方式调用GitHub Copilot的屏幕截图。

内联补全与聊天:决策指南

如果你希望... 使用
键入时完成常见 SQL 模式 内联补全
获取架构感知查询 @mssql 聊天
修改突出显示的查询 智能操作图标
围绕架构进行多回合对话 @mssql 聊天
在新的提示内联调用 GitHub Copilot Ctrl+I / Cmd+I

共享您的体验

为了帮助我们优化和改进 MSSQL 扩展的 GitHub Copilot,请使用以下 GitHub 问题模板提交反馈: GitHub Copilot 反馈

提交反馈时,请考虑包括:

  • 测试的方案:告诉我们你关注哪些领域,例如架构创建、查询生成、安全性、本地化。

  • 效果很好:描述任何感觉流畅、有帮助或超出预期的体验。

  • 问题或错误:包括任何问题、不一致之处或令人困惑的行为。 屏幕截图或屏幕录制特别有用。

  • 改进建议:分享改进可用性、扩大覆盖范围或增强 GitHub Copilot 响应的想法。