Краткое руководство: используйте встроенные варианты автодополнения GitHub Copilot в SQL-файлах

Встроенные завершения — это фантомные текстовые предложения, которые отображаются при вводе .sql в файл. Они основаны на модели GitHub Copilot и помогают завершать типичные конструкции SQL по мере ввода. В этой статье объясняется, какие возможности дают встроенные варианты завершения, в чем состоит их ключевое ограничение (они не видят схему вашей базы данных), а также когда вместо них следует использовать @mssql участник чата для получения подсказок с учетом схемы.

Встроенные автодополнения не видят схему подключённой базы данных. Они создаются непосредственно моделью GitHub Copilot без доступа к контексту схемы расширения MSSQL. Чтобы получать подсказки с учётом схемы при написании SQL, используйте @mssqlчат-участник. Об архитектурной причине см. How GitHub Copilot works with the MSSQL extension.

Основные итоги

  • Строчные автодополнения показывают фантомный текст во время ввода в редакторе.
  • Они полезны для универсальных шаблонов Transact-SQL (T-SQL) (соединения, SELECT предложения, общие функции).
  • Они не ссылаются на схему подключенной базы данных.
  • Для автодополнения с учетом схемы используйте участника чата @mssql вместо встроенного автодополнения.
  • Значок смарт-действия и сочетание клавиш CTRL+I вызывают GitHub Copilot в выбранном коде. Они дополняют встроенные завершения.

Prerequisites

Убедитесь, что вы подключены к базе данных и открываете активное окно редактора с расширением MSSQL. При подключении, @mssql участник чата понимает контекст вашей базы данных и может предлагать точные и соответствующие контексту рекомендации. Если вы не подключаетесь к базе данных, участник чата не имеет контекста схемы или данных для предоставления значимых ответов.

В следующих примерах используется образец базы данных AdventureWorksLT2022, доступный для загрузки на домашней странице проектов сообщества и примеров Microsoft SQL Server.

Для получения наилучших результатов настройте имена таблиц и схем в соответствии с собственной средой.

Убедитесь, что чат включает @mssql префикс. Например, введите @mssql, а затем ваш вопрос или запрос. Этот префикс гарантирует, что участник чата понимает, что вы запрашиваете помощь, связанную с SQL.

Что предлагают встроенные автодополнения

Когда вы вводите текст в файле .sql с включённым GitHub Copilot, прямо в строке появляется текст-подсказка. Принять с помощью Tab или Enter; проигнорировать, продолжив печатать.

Встроенные автодополнения хорошо подходят для:

  • Завершение общих шаблонов (SELECT * FROM, INNER JOIN ... ON, WHERE x = ?).
  • Завершение частичных идентификаторов, которые вы уже ввели в файл.
  • Создание шаблонов для известных конструкций SQL.

Встроенные автодополнения не подходят для:

  • Использование реальных имен таблиц или столбцов из базы данных (они угадываются на основе контекста).
  • Уважение фактической схемы или связей базы данных.
  • Использование контекста структуры участника чата @mssql.

Почему встроенные автодополнения не учитывают схему

API встроенного автодополнения в Visual Studio Code фактически поддерживает только одного поставщика для каждого конкретного документа. Если 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 для оптимизации SQL-запроса в Visual Studio Code.

Использование сочетаний клавиш

Вызов GitHub Copilot в соответствии со следующими параметрами:

  • Ctrl+I в Windows и Linux
  • Cmd+I в macOS

Появится встроенное поле запроса, в котором можно задавать вопросы или запрашивать изменения в запросе.

Снимок экрана: вызов GitHub Copilot с помощью сочетания клавиш CTRL плюс I в Visual Studio Code.

Встроенные автодополнения или чат: руководство по выбору

Если вы хотите... Использование
Завершить распространённую конструкцию SQL при вводе Встроенные автодополнения
Получить запрос с учетом схемы @mssql Чат
Изменение выделенного запроса Значок умного действия
Вести многоэтапный диалог о вашей схеме @mssql Чат
Вызов GitHub Copilot в новой строке запроса Ctrl+I / Cmd+I

Оставьте свой отзыв

Чтобы помочь нам уточнить и улучшить GitHub Copilot для расширения MSSQL, используйте следующий шаблон проблемы GitHub для отправки отзывов: GitHub Copilot Feedback

При отправке отзывов рассмотрите возможность включения:

  • Тестируемые сценарии: сообщите нам, на какие области вы ориентированы, например создание схемы, создание запросов, безопасность, локализация.

  • Что хорошо работало: Опишите любые ситуации, которые были безупречными, полезными или превысили ваши ожидания.

  • Проблемы или ошибки: любые проблемы, несоответствия или запутанное поведение. Снимки экрана или записи экрана особенно полезны.

  • Предложения по улучшению: поделитесь идеями для улучшения удобства использования, расширения охвата или улучшения ответов GitHub Copilot.