クイック スタート: 埋め込みGitHub Copilotシナリオを使用してスキーマを視覚的に設計する

MSSQL 拡張機能のスキーマ デザイナーには、GitHub Copilot がそのキャンバス内に直接組み込まれています。 Transact-SQL (T-SQL) スクリプトがライブで更新されている間に、自然言語で必要な内容を説明したり、テーブル、列、リレーションシップをビジュアルダイアグラムで具体化したりできます。 このクイック スタートでは、埋め込みエクスペリエンスを一意に役立てるシナリオについて説明します。他のファイルで選択したコードからテーブルを作成する、多対多リレーションシップを追加する、テーマを設定したテスト データを生成する、外部成果物をインポートするなどです。

Tip

AI 駆動型スキーマ設計と共に視覚的なフィードバックが必要な場合は、GitHub Copilotでスキーマ デザイナーを使用します。 プロンプトのみを使用する場合、または視覚的な変更をコミットする準備ができていない場合は、@mssqlでチャット ベースのスキーマ設計を使用します。 この機能のリファレンス ドキュメントについては、スキーマ デザイナーでのGitHub Copilot統合に関する記事を参照してください。

重要な習得事項

  • スキーマ デザイナーに埋め込まれた GitHub Copilot は、@mssql チャット参加者とは別個のパイプラインです。 ビジュアル キャンバス上で直接動作します。
  • スキーマ デザイナーのGitHub Copilotは、他のエディター選択 (TypeScript ファイル内の JSON 構造など) からコンテキストを取得できます。
  • すべての変更は、データベースに公開する前に、確認できるよう Copilot Changes パネルに表示されます。
  • カスタム 手順 もここに適用されます。

前提条件

  • MSSQL 拡張機能がインストールされているVisual Studio Code (バージョン 1.41 以降)。
  • アクティブなGitHub Copilot サブスクリプション。
  • オブジェクト エクスプローラー でのデータベース接続(ローカル SQL Server、Azure SQL Database、または Microsoft Fabric 内の SQL データベース)。

スキーマ デザイナーを開く

  1. オブジェクト エクスプローラーで、データベースを右クリックします。
  2. [ スキーマ デザイナーを開く] を選択します

スキーマ デザイナーが開き、既存のテーブルのビジュアル ビューが表示されます。 GitHub Copilotチャット パネルがキャンバスの横に表示されます。

シナリオ 1: 別のファイルで選択したコードからテーブルを作成する

スキーマ デザイナーの埋め込みGitHub Copilotは、他のエディター ウィンドウから選択内容を読み取り、スキーマ作成のコンテキストとして使用できます。 これは、フロントエンドレイヤーまたはアプリケーションレイヤーに、実際のテーブルにする必要があるハードコーディングされたデータシェイプが既に存在する場合に便利です。

  1. 別のエディター タブでソース ファイルを開きます。たとえば、 MAGAZINES_DATA 配列を持つ React コンポーネントです。
  2. ソース ファイル内のデータ構造を選択します。
  3. スキーマ デザイナーのチャット パネルに切り替えて、次のメッセージを送信します。
Using the selected JSON structure, create a new table called magazines.

GitHub Copilot:

  • クロスファイル選択をコンテキストとして取得します。
  • 適切な T-SQL データ型 (NVARCHARINTDATETIME2) を推論します。
  • 名前付け、制約、および監査列の カスタム手順 に従います。
  • Copilot Changes パネルで新しいテーブルをステージします。

キャンバスで提案されたテーブルを確認し、変更を受け入れるか元に戻します。

シナリオ 2: 多対多リレーションシップを追加する

新しいテーブルを既存のテーブルに関連付ける必要がある場合は、ジャンクション テーブルと外部キーを作成するようにGitHub Copilotに依頼します。

Add a many-to-many relationship between the magazines table and
the existing authors table. Ensure the foreign key columns align
with the current database schema and reference the correct primary
key columns.

GitHub Copilotは、両方のテーブルを指す正しい外部キーを持つmagazines_authorsジャンクション テーブルを作成します。 ビジュアル ダイアグラムが更新され、新しいリレーションシップラインが表示されます。

シナリオ 3: テーマ付きテスト データを生成する

スキーマが配置されたら、GitHub Copilotは現実的なシード データを生成し、データベースに対して実行できます。

Seed the magazines and magazines_authors tables with test data.
- Tables already exist - do NOT create or alter them.
- Each magazine should be themed around science or technology.
- Include at least 5 magazines with creative titles, issues, and years.
- Look up existing authors in the database and link each magazine
  to one or more authors.

実行する前に、生成された INSERT ステートメントを確認します。 GitHub Copilotは、ID を発明するのではなく、既存の主キーを検索することで参照整合性を尊重します。

データが正しく取り込まれていることを確認します。

Show me all the data in the magazines table and their linked authors.

シナリオ 4: 最初からスキーマをブートストラップする

空のデータベースでは、単一の自然言語の説明から完全なアプリケーション スキーマを作成できます。

I'm building a task management app. Create a schema with users,
projects, tasks, and comments. Users can belong to multiple projects
with different roles. Tasks can have multiple assignees. Comments
belong to a task and an author.

GitHub Copilotは、すべてのテーブル、リレーションシップ、ジャンクション テーブル、および制約を作成し、それらをレビュー用にステージングします。 このフローは プラン モードとうまく組み合わせ、プラン モードを使用して最初にスキーマを推論してから、プランをスキーマ デザイナーに渡して実行します。

シナリオ 5: 外部成果物をインポートする

スキーマ デザイナーでは、JSON ファイル、アプリケーション コード、ドキュメント、イメージなどの外部入力からスキーマ要素を生成できます。

Here's a JSON file describing our product catalog structure.
Create tables to represent this data, including appropriate
relationships between products, categories, and variants.

#file:経由でファイルを添付するか、チャットにドラッグします。 GitHub Copilotは、ソース データで明示的ではないリレーションシップを含め、スキーマを推論します。

発行前に変更を確認する

提案されたすべての変更は、スキーマ デザイナーの下部にある [Copilot変更] パネルでステージングされます。 次のようにすることができます。

  • 追加、変更、または削除された各オブジェクトを個別に確認します。
  • 実行される正確な T-SQL スクリプトを参照してください。
  • 変更をキャンバスに適用することを受け入れるか、元に戻して破棄します。
  • 準備ができたら、[ 変更の発行 ] を選択して、データベースに対して DDL を実行します。

検証とガードレール

スキーマ デザイナーのGitHub Copilotは、問題がデータベースに到達する前に事前にフラグを設定します。

  • 主キーのないテーブル。
  • SQL Serverのデータ型が無効です。
  • 正規化の問題 (繰り返しグループなど)。
  • 存在しない列を参照する外部キー。

差分ビューのスキーマ修飾名 (schema.tableschema.column) により、提案された各変更が明確になります。

このスキーマを使用する場合とチャット ベースのスキーマ設計を使用する場合

もし望むなら... Use
ドラッグ アンド ドロップ キャンバス + AI を使用してスキーマを視覚的に設計する この記事 (Schema Designer と GitHub Copilot)
接続されたデータベースに対するプロンプトを使用してスキーマを設計する(キャンバスなし) チャット ベースのスキーマ エクスプローラー @mssql
構築前に完全なデータ モデルを使用する理由 計画モード
AI を使用しないスキーマを手動で設計する スキーマ デザイナー

感想をお聞かせください

MSSQL 拡張機能の GitHub Copilot を改良および改善するために、次の GitHub 問題テンプレートを使用してフィードバックを送信します。 GitHub Copilot フィードバック

フィードバックを送信する場合は、次の内容を検討してください。

  • テスト済みのシナリオ: スキーマの作成、クエリの生成、セキュリティ、ローカライズなど、重点を置いた領域をお知らせください。

  • うまくいったこと: スムーズに感じたり、役に立ったり、期待を超えたりした経験について説明します。

  • 問題またはバグ: 問題、不整合、または混乱を招く動作を含めます。 スクリーンショットや画面の記録は特に役立ちます。

  • 改善の提案: 使いやすさの向上、カバレッジの拡大、GitHub Copilot の回答の強化に関するアイデアを共有します。