SQL Server Management Studioで GitHub Copilot Chat エクスペリエンスを使用する

SQL Server Management Studio (SSMS) のGitHub Copilotのチャット ウィンドウを使用すると、SSMS での AI 支援型データベースの管理と開発が強化されます。 これは、SQL データベースを操作する際の生産性と効率を高めるために役立ちます。

SSMS のGitHub Copilotによって生成されたクエリは、ユーザーのログインとアクセス許可のコンテキストで実行されます。 GitHub Copilotに対する個別のアクセス許可はありません。 Ask モードでは、Copilotは分類システムを使用して、生成されたクエリを実行する前に読み取り専用かどうかを判断します。

Important

このシステムは書き込み操作をブロックしますが、セキュリティ境界ではありません。 最小限の特権の原則を使用して、データベース 層でアクセス制御を適用します。アクセスする必要がある特定のオブジェクトに対して必要な SELECTEXECUTE のアクセス許可のみをユーザーに付与します。 セキュリティ境界は、Copilotの分類システムではなく、SQL Serverのアクセス許可の適用です。

この記事では、SSMS に直接存在するGitHub Copilotから完全に統合された AI を利用したチャット エクスペリエンスである SSMS での GitHub Copilot チャットの使用について説明します。 これにより、SSMS UI を離れることなく、構文やコンテキスト固有のヘルプなど、Transact-SQL (T-SQL) のサポートを受けることができます。 チャット インターフェイスを使用して質問をプロンプトとして送信し、より適切な範囲の回答を得るための意図を提供します。

SSMS で GitHub Copilot Chatを使用する理由

GitHub Copilot Chat では、SQL データベースに関する情報に基づいた意思決定を行い、T-SQL をより迅速に記述するのに役立つ AI 支援が提供されます。 接続コンテキストとスキーマの理解を含む SSMS の統合により、GitHub Copilot Chatは作業内容を理解し、次のようなタスクに役立ちます。

  • T-SQL のサポート:

    • コンテキスト固有のコード提案と推奨事項を取得します。
    • クエリの動作を理解し、文書化します。
    • クエリの構文エラーを修正するためのサポートを受けます。
    • クエリをリファクタリングします。
  • データベース管理:

    • 設定、セキュリティなどの管理に関するヘルプを参照してください。
    • データベースのメンテナンスを構成して監視します。
    • 新しい SQL 機能を実装します。
  • データベース開発:

    • スキーマの設計。
    • データ型の選択。
    • インデックス作成に関する推奨事項。

[前提条件]

SSMS でGitHub Copilot Chatを使用するには、AI Assistance ワークロードと、Copilot アクセスを持つGitHub アカウントを使用する SSMS 22 以降のバージョンが必要です。 それ以外の場合は、 SQL Server Management Studio

SSMS でCopilot Chatを使用する

自然言語でデータベースと T-SQL の質問を行い、GitHub Copilot Chatデータベースとその接続のコンテキストで回答します。

これらの質問Copilot、チャット ウィンドウ、またはインライン チャットを使用して変更しようとしているコード内で直接インラインで質問できます。 エディターで開いている SQL ファイルを変更または追加する場合は、インライン チャット ビューが最適な場合があります。 一般的な T-SQL の質問に対する回答には、チャット ウィンドウを使用します。

Copilot chat結果を向上させるには、参照ファイルthreads、および slash コマンドを使用して、Copilot Chatのスコープ付きコンテキストを使用してより適切な回答を得る方法について説明します。

チャット ウィンドウで質問する

SSMS のCopilot Chatのチャット ウィンドウを使用すると、質問をしたり、チャット ウィンドウに回答を表示したりできます。 通常は、データベースのヘルプと一般的な T-SQL の質問に対してCopilotを操作することをお勧めします。

  1. クエリ エディター ウィンドウを開き、データベースに接続します。
  2. SSMS で、View>GitHub Copilot Chat を選択します。
  3. チャット ウィンドウのスタート プロンプトの例を使用して、Copilot Chatの調査を開始するか、プロンプトを入力して Enter または Send を選択して質問を送信します。
  4. Copilot Chatが使用する T-SQL 候補を提供する場合は、次の手順を実行します。 Apply を選択して、アクティブなクエリ エディターにコードを適用するか、Copy コード ブロックを選択して提案をコピーするか、新しいファイルに追加コード候補を新しいファイルに挿入します。
    • コードの理解に関するヘルプを求められた場合、[ 新しいファイルに挿入 ] オプションは使用できません。
  5. [適用] を選択すると、差分ビュー パターンでアクティブなエディターにコード候補が適用されます。 提案されている内容を確認して絞り込み、 Tab を使用して適用するか、 Alt+Delete を使用して破棄できます。

インライン チャット ビューで質問する

SSMS のCopilot Chatのインライン チャット ビューを使用すると、質問をしたり、エディター ウィンドウで直接コードを使用して回答をインラインで確認したりできます。 インライン チャットでは、チャット ウィンドウに行ったり来たりする必要はありません。 インライン チャットを使用して、現在開いている SQL ファイルに追加や更新を行う質問について、Copilotを使って作業を簡単にすることができる可能性があります。

  1. SSMS で、Alt+/ を選択して、エディターでCopilot Chatのインライン チャット ビューを表示します。
  2. Ask Copilot テキスト ボックスに T-SQL 関連の質問を入力し、Enter または Send を選択して質問します。
  3. Copilot Chatからのコード候補が差分ビューに表示されます。 提案されている内容を確認して調整し、 Tab キーを使用してコードに変更を適用するか、 Alt+Delete を使用して破棄できます。
  4. [チャット ウィンドウで表示] を選択すると、インライン チャット スレッドを チャット ウィンドウに昇格させることができます。 チャットをウィンドウに昇格すると、会話のレコードとコンテキストが保持され、チャット ウィンドウで続行できます。
  5. [Esc] を選択してインライン チャット ビューを閉じます。

SSMS のGitHub Copilotからのクエリは、チャット ウィンドウまたはインライン チャット ビューのどちらからでも、ユーザーのログインとアクセス許可のコンテキストで実行されます。 SSMS のGitHub Copilotに対する個別のアクセス許可はありません。

個別の会話用にスレッドを作成する

チャット セッションで質問をしたりプロンプトを送信したりするときに、Copilotはチャット プロンプトと応答の履歴を使用します。 前のプロンプトと応答は、現在のチャット プロンプトにコンテキストを提供します。 コンテキストを繰り返すことなく、フォローアップの質問をしたり、前の質問を明確にしたりすることができます。 たとえば、 What is the compatibility mode for this database?What are the differences between compatibility mode 140 and 170?Do all users need to be out of the system when changing compatibility mode?などを尋ねることができます。

スレッドを使用して、新しいタスクの新しい会話を開始します。 チャット ウィンドウで [ 新しいスレッドの作成 ] または [Ctrl+N ] を選択して新しいスレッドを開始します。 新しいスレッドは、別のトピックに移動し、前のコンテキストと履歴を回避する場合に便利です。 スレッドを使用して、会話をタスクに集中させ、コンテキストを明確にして、回答が関連する履歴に基づくようにします。

チャット スレッドの切り替え

複数の進行中のスレッドを切り替えて、質問に適切な履歴コンテキストを提供できます。 のスレッドには Ctrl+Page Down、チャット ウィンドウの前のスレッドの場合は Ctrl+Page Up を使用します。 + T はスレッドのドロップダウン リストを展開します。

インライン チャットを保持する

インライン チャットの履歴を保持するには、それをチャット ウィンドウに昇格します。 [ チャット ウィンドウで表示] を選択して会話のレコードとコンテキストを維持し、チャット ウィンドウで続行します。

チャット スレッドの削除

新しいチャット セッションからやり直し、現在のコンテキストを破棄するには、[ スレッドの削除] を選択します。 関連性がなくなったスレッド、または目的の結果が得られなかったスレッドを削除します。

Markdown コンテンツのプレビュー

Copilot Chatによって生成された Markdown コンテンツは、Markdown エディターで直接プレビューできます。 Copilot ChatがMarkdownコンテンツを生成したら、チャットウィンドウの右上にある[プレビュー]ボタンを選択して、レンダリングされたプレビューを表示します。 必要に応じて Markdown コンテンツを編集および保存できます。 この機能は、手動でコピーして貼り付けることなく、Markdown ファイルをすばやく視覚化して操作する場合に役立ちます。

人魚図を生成する

Copilot Chatはエンティティリレーションシップ、フローチャート、ガントなど、マーメイド図を生成できます。 その後、エディターで複雑なリレーションシップとワークフローを直接視覚化できます。

たとえば、次のプロンプトを 1 つ以上使用できます。

  • Visualize the relationships between tables in this database as a Mermaid diagram
  • Visualize the relationships between tables in the Orders schema of this database as a Mermaid diagram
  • Create a Mermaid flowchart for the steps to change the compatibility mode

Copilotは、アクティブなクエリ エディターと追加した参照を使用してコンテキストを収集し、チャット ウィンドウで人魚構文を返します。 [プレビュー] を選択して新しい Markdown ファイルを開き、ダイアグラムを表示します。 今後使用するために、Markdown またはレンダリングされたグラフを保存または共有できます。

ヒント

Markdown プレビュー コントロールを使用すると、プレビュー モードを切り替えて、複雑な人魚図を拡大することができます。

Copilot Chatのカスタマイズ

SSMS では、ワークフローと要件のCopilotをカスタマイズできます。

  • 参照を使用してコンテキストを管理する: + ボタンを使用して、 .sql ファイルや .sqlplan ファイルなど、より多くのコンテキストをアタッチします。 詳細については、「 SQL Server Management Studioを参照してください。

  • 異なるモデルへのアクセス: プロンプト ウィンドウでモデル ピッカーを使用してAIモデルを選択するか、独自のモデルをCopilotで使用します。 簡単な質問への回答、ドキュメントの記述、コードの編集の生成など、さまざまなシナリオのさまざまなモデルを調べます。 詳細については、SQL Server Management Studio のGitHub Copilotの AI モデルを参照してください。