GitHub Copilot の SQL Server Management Studio (SSMS) におけるプロンプトに、暗黙的なコンテキスト知識に加えて参照を使用することで、より良い応答を得るためのコンテキストを追加できます。
暗黙的なコンテキスト
SSMS の GitHub Copilot は、アクティブなクエリ エディターとそのデータベース接続に基づいて、プロンプトにコンテキストを自動的に提供します。 次の情報は、チャット コンテキストに暗黙的に含まれます。
- アクティブなクエリ エディターで現在選択されているテキスト。
- クエリ エディターでアクティブな現在のファイル。
- アクティブなクエリ エディターのデータベース接続。
プロンプトに応じて、アクティブなクエリ エディターの内容を読み取るか、エディターで選択したテキストを読み取ります。
他のファイルを参照する
T-SQL 関連の質問は自然言語で、GitHub Copilot Chat の回答は SSMS のアクティブエディターのコンテキストで質問できます。 参照は、Copilot が質問に答えるときに考慮する特定の情報を提供します。
エディターで開いている他のファイルを選択すると、長い情報を書き出したり貼り付けたりすることなく、より良い質問を作成できる場合があります。 コンテキストを指定すると、Copilot はより関連性の高い回答を提供することもできます。
GitHub Copilot Chat でファイルを参照するには、ファイル名の先頭に # 記号を追加します。 たとえば、 GetSalesInfo.sqlという名前のファイルがある場合は、チャット内でそれを #GetSalesInfo.sqlとして参照します。
コード 支援にスラッシュ コマンドを使用する
SSMS の GitHub Copilot には、一般的なデータベース開発タスクの意図を設定するのに役立つコード 支援が用意されています。 この意図により、生産性が向上し、クエリをより迅速に理解して修正できます。 エディターでクエリを強調表示し、スラッシュ コマンドを使用してクエリの文書化、説明、修正、最適化を行います。 スラッシュ コマンドは、チャット ウィンドウとインライン チャットの両方で使用できます。
| Command | Usage |
|---|---|
/doc |
選択した T-SQL コードのコメントを追加して、コードを見る次のユーザーが自分が何をしたかを理解するのに役立ちます。 |
/explain |
選択した T-SQL コードの詳細を取得します。 |
/fix |
T-SQL コードのエラーに対処し、問題の説明や変更された内容など、確認する正しいバージョンを返します。 |
/help |
Copilot Chat の使用に関するヘルプを表示します。 |
/optimize |
クエリ内のアンチパターンを特定し、T-SQL のベスト プラクティスと一貫性のある変更を行う |
スレッドを使用してチャット履歴コンテキストを管理する
1 つのチャット セッションで複数のチャット プロンプトを繰り返し送信すると、Copilot はチャット プロンプトと応答の履歴を使用します。 前のプロンプトと応答は、現在のチャット プロンプトにコンテキストを提供します。 つまり、コンテキストを繰り返すことなく、フォローアップの質問をしたり、前の質問を明確にしたりすることができます。 たとえば、"互換モードを変更する方法"、"互換モード 140 と 170 の違いは何ですか?"、"互換モードを変更する際に考慮する必要がある事項"などを確認できます。
新しいチャット セッションからやり直し、現在のコンテキストを破棄するには、[ スレッドの削除] を選択します。 [ 新しいスレッドの作成] を選択して、チャット ビューで新しいスレッドを開始します。 新しいスレッドは、別のトピックに移動し、前のコンテキストと履歴を回避する場合に便利です。 スレッドを使用して、会話をタスクに集中させ、コンテキストを明確にして、回答が関連する履歴に基づくようにします。
ベスト プラクティス
Copilot Chat では、チャット履歴を使用して、要求に関するコンテキストを取得します。 Copilot に関連する履歴のみを提供するには:
- スレッドを使用して、新しいタスクの新しい会話を開始します。
- 関連性がなくなった要求、または目的の結果が得られなかった要求を削除します。
チャットの会話を開いたままにし、繰り返し処理を続け、Copilot にプロンプトを表示して、提案されたソリューションを改善します。 Copilot には、生成されたコードのコンテキストと現在の会話履歴の両方があります。 質問を続ける中で、Copilot は要件に応じて応答をさらに絞り込みます。