Announcing database instructions and a lot of fixes in SQL Server Management Studio 22.3 でアナウンスされましたが、SSMS 22.3.0 で Database Instractions (データベース指示 / 命令) のサポートが追加されました。
ドキュメントは、Use database instructions with GitHub Copilot in SQL Server Management Studio (Preview) として公開されています。
現時点での実装は「拡張プロパティに AGENTS.md / CONSTITUTION.md を設定することで Custom Instructions として使用する」という実装となっており、外部ファイルではなく、拡張プロパティを使用することで実装されています。
上述のドキュメントにサンプルが記載されていますが、tpch のスキーマを使用する場合は次のような設定ができます。
拡張プロパティはオブジェクトごとに一つの設定となるようです。
/*
EXEC sp_dropextendedproperty
@name = N'AGENTS.md',
@level0type = N'SCHEMA',
@level0name = N'dbo',
@level1type = N'TABLE',
@level1name = N'NATION'
GO
*/
EXEC sp_addextendedproperty
@name = N'AGENTS.md',
@value = N'NATION を検索する場合、N_NATIONKEY / N_NAME / N_REGIONKEY のみ取得してください。',
@level0type = N'SCHEMA',
@level0name = N'dbo',
@level1type = N'TABLE',
@level1name = N'NATION'
GO
EXECUTE sp_addextendedproperty
@name = N'CONSTITUTION.md',
@value = N'SQL を生成する際には、コメントとして Query ID を記載すること';
GO
上記の設定を実施することで、SSMS の Copilot では、次のような回答が行われるようになります。
NATIONS で検索される列 / コメントでクエリ ID の付与の制御が行われており、指示した内容が反映されていることが確認できますね。
ファイルとして指示を作成するのではなく、データベースのオブジェクトのプロパティとして設定をしておくことで、接続した SSMS で個別の設定を行うことなく、共通的に使用することができるという思想なのでしょうか。