次の方法で共有


SQL Server Management Studio (プレビュー) で GitHub Copilot のデータベース命令を使用する

データベースの手順により、SQL Server Management Studio (SSMS) の GitHub Copilot に、データベース固有のコンテキストと、データベース内に直接存在するガイダンスが提供されます。 データベース所有者とチームは、それらを使用して、ビジネス ルール、データ規則、および使用パターンを記述できます。 データベース命令を使用すると、Copilot は、ユーザーが質問したりクエリを記述したりしたときに、より正確で意味のある一貫性のある応答を生成できます。 データベース命令は、データベースと共に移動し、Copilot の対話時に自動的に適用される生きたドキュメントとして機能します。

この記事では、データベース命令を使用する方法について説明します。これにより、ユーザーと Copilot が正しいオブジェクトと情報をより迅速に見つけることができます。 この機能は、データベース、ビジネス、および内部知識を Copilot に提供するのに費やす時間を短縮するのに役立ちます。

GitHub Copilot チャットに関する関連情報については、「 SQL Server Management Studio (プレビュー)で GitHub Copilot Chat エクスペリエンスを使用する」を参照してください。

データベース命令のしくみ

データベース命令はメタデータとしてデータベースに格納されます。これにより、Copilot は実行時にそれらを自動的に検出して適用できます。 自然言語での質問や T-SQL の生成など、ユーザーがデータベースの GitHub Copilot と対話する場合、Copilot には追加のコンテキストとしてこれらの手順が組み込まれます。 このコンテキストにより、応答には、スキーマ名や推測作業のみに依存するのではなく、ビジネス定義、正規テーブル、ドメイン固有のルールが確実に反映されます。 命令はセッション間で保持され、同じデータベースにアクセスするすべてのユーザーが使用できます。

[前提条件]

SSMS での GitHub Copilot のデータベース手順は、拡張プロパティの情報に依存します。

  1. AI Assistance ワークロードを使用して SSMS 22.3 以降のバージョンをインストールします。

  2. Copilot アクセスを使用して GitHub アカウントにサインインします。

GitHub Copilot を無料で使用します。 サインアップして AI を使用して、より迅速かつ効率的にコーディングします。

GitHub Copilot を使用してデータベースの手順を追加または表示する

これらの手順では、GitHub Copilot を使用してデータベースの手順を作成して使用する方法を示します。

不足しているコンテキストを明らかにするために Copilot に質問する

まず、自然言語でデータについて Copilot に質問します。 たとえば、 What was revenue for the last quarter of the year? 会計年度と暦年の開始日が異なる場合や、収益に複数のテーブルを含む計算が必要な場合は、関連するテーブルまたは列がデータベース命令に適しています。

ビジネス ルールをデータベース命令として定義する

Copilot チャットで、Copilot で覚えておくルールまたは説明を記述します。 たとえば、Add an instruction for the Finance.CompanyRevenue table to state that revenue is defined as SUM(NetAmount) excluding refunds recorded in Finance.Refunds. のように指定します。

命令をデータベースに保存する

Copilot が T-SQL 構文を生成して命令を拡張プロパティとして追加したら、この情報をデータベース命令として保持する必要があります。 Ask モードでは、GitHub Copilot はデータベースに対して変更クエリを実行できません。

-- Created by GitHub Copilot in SSMS - review carefully before executing
EXECUTE sp_addextendedproperty
    @name = N'AGENTS.md',
    @value = N'Revenue is defined as SUM(NetAmount) excluding refunds recorded in Finance.Refunds. When calculating actual revenue, refunds must be subtracted from the Revenue column values.',
    @level0type = N'SCHEMA',
    @level0name = N'Finance',
    @level1type = N'TABLE',
    @level1name = N'CompanyRevenue';

データベースに命令を追加すると、Copilot は今後の対話に自動的に情報を適用します。

命令を適用して Copilot を使用する

Copilot にもう一度同じ質問または関連する質問をする What was revenue for the last quarter of the year? 、Copilot は、保存された命令を使用して、ビジネスの収益定義に合った結果を生成します。ルールを修正する必要はありません。 また、コピロット Show me the query used to get this information. に指示に対するコピロットの理解を確認するように依頼することもできます。

その他の例

テーブル、列、ストアド プロシージャなど、データベース オブジェクトにビジネス ルールを適用する必要があるシナリオは無限です。

  • The dbo.Apts table stores information about patient appointments
  • The Status column in dbo.Apts encodes status as: 1 = Scheduled, 2 = Completed, 5 = Confirmed, 99 = Cancelled
  • The DtCrtd column in dbo.Apts lists the date and time the appointment was created

Copilot でデータベース命令を使用する場合は、現在存在する命令について質問することもできます。

  • Show me the database instructions for this database
  • Does this database have a constitution set?

GitHub Copilot を使用してデータベースの構成を作成する

SSMS の GitHub Copilot では、データベースの特異な構成もサポートされています。これは、データベースの優先順位が最も高い命令を設定します。 規約には、推奨事項、コーディングガイドライン、データ保持ポリシーなどを含めることができます。

データベース構成の実装は、SSMS で GitHub Copilot を使用するすべてのユーザーの GitHub Copilot 会話に適用されます。 推奨事項とガイドラインは、GitHub Copilot の会話にのみ適用されます。

EXECUTE sp_addextendedproperty
    @name = N'CONSTITUTION.md',
    @value = N'Any T-SQL in this database must comply with the organizational standards and guidelines outlined in this constitution document.
 Queries that use SELECT * should not be used.';

Requirements

現在、データベース命令は拡張プロパティとしてのみサポートされています。 AGENTS.md 形式に従って、GitHub Copilot で使用されるコンテキストを提供します。 オブジェクトの拡張プロパティの名前は AGENTS.mdする必要があります。 オブジェクト AGENTS.md という名前のプロパティは 1 つだけ存在できます。 命令が正しくない場合は、 sp_updateextendedpropertyを使用して更新するか、 sp_dropextendedpropertyを使用して削除できます。 データベース命令を機能させるために必要なその他の構成はありません。