Gyorsútmutató: Használjon egyéni utasításokat a GitHub Copilot T-SQL-konvencióihoz igazításához

Az egyéni utasítások megtanítják a GitHub Copilotnak a csapat szabványait, így minden válasz, akár a kérdező módban, az ügynök módban vagy a beágyazott kódkiegészítések során érkezik, az elnevezési, formázási és adattípus-konvencióitokat követi. A fájlokra .sql vonatkozó egyetlen Markdown-fájl az általános Transact-SQL (T-SQL) kimenetét a projektnek megfelelő igazított kimenetre módosítja.

Tip

Az egyéni utasítások minden, a applyTo glob mintának megfelelő GitHub Copilot-felületen érvényesek, beleértve az ask módot, az edit módot, az agent módot és a soron belüli kiegészítéseket. Nyelvenként vagy tartományonként egyszer állítsa be őket.

A legfontosabb tudnivalók

  • Az egyéni utasítások .github/instructions/<name>.instructions.md a munkaterületen belül találhatók.
  • A applyTo front matter kulcs minden fájlt egy globmintához rendel, például a **/*.sql mintához.
  • GitHub Copilot minden kérésbe automatikusan beszúrja a megfelelő utasításokat. Nincs szükség perjeles parancsra.
  • Egyéni utasítások nélkül a GitHub Copilot alapértelmezetten általános konvenciókat használ (PascalCase, INT elsődleges kulcsok, fájlsablonok nélkül).

Prerequisites

  • Visual Studio Code az MSSQL-bővítmény telepítve van.
  • Aktív GitHub Copilot előfizetés.
  • Egy munkaterületi mappa. Ez a rövid útmutató új fájlokat hoz létre a fájlban .github/instructions/.

Mik azok az egyéni utasítások?

Az egyéni utasítások olyan Markdown-fájlok, amelyeket a GitHub Copilot beolvas és alkalmaz minden olyan kérésre, amely megfelel egy glob mintának. Visual Studio Code natív módon támogatja őket. Az MSSQL-bővítmény nem igényel további konfigurációt.

Ma már minden komoly MI-alapú kódolóeszköz támogatja ennek a mintának valamely változatát: a Cursor a .cursorrules használja, az OpenAI Codex a AGENTS.md-t, az Anthropic Claude Code-ja pedig a CLAUDE.md-t. A Visual Studio Code-ban elérhető GitHub Copilot a(z) .github/instructions/*.instructions.md használja. Ennek az az előnye, hogy ugyanabban a repozitóriumban több, különböző fájltípusokra vonatkozó utasításfájl is lehet.

A funkció általános Visual Studio Code dokumentációját lásd: AI-válaszok testreszabása Visual Studio Code.

Miért fontosak az egyéni utasítások a T-SQL-hez?

A modern GitHub Copilot alapértelmezetten is lenyűgöző T-SQL-t generál: NVARCHAR oszlopok, DATETIME2 időbélyegek, értelmes megszorításnevek. Ez azonban alapértelmezés szerint olyan konvenciókra igaz, amelyet a csapat esetleg nem használ.

Egyéni utasítások nélkül általában GitHub Copilot:

  • A táblák és oszlopok neveihez PascalCase formátumot használ (UserID, CreatedAt) a csapata által használt camelCase vagy snake_case helyett.
  • Elsődleges kulcsokat használ INT ahelyett, hogy BIGINT.
  • Kihagyja a fájlfejlécsablonokat, SET ANSI_NULLS ON, és SET QUOTED_IDENTIFIER ON.
  • Kihagyja a séma minősítését (CREATE TABLE users helyett CREATE TABLE dbo.users).
  • PK_tableName / FK_child_parent mintát követné helyett automatikus nevű megszorításokat hoz létre.

Ezek közül az alapértelmezett értékek egyike sem hibás. Csak nem a sajátjaid. Az egyéni utasítások mindezt egyetlen fájllal javítják ki.

T-SQL-konvenciós fájl létrehozása

Ez a példa létrehoz egy utasításfájlt, amely kikényszeríti a CamelCase elnevezését, a séma minősítését, a naplózási oszlopokat és egy fájlfejlécsablont.

1. lépés: A fájl létrehozása GitHub Copilot használatával

  1. A Visual Studio Code-ban nyissa meg a GitHub Copilot Chat nézetet.
  2. Válassza a beállítások (fogaskerék) ikont, majd válassza az Utasítások > Szabályok>Új utasításfájl lehetőséget.
  3. Amikor a rendszer egy hely megadását kéri, válassza a .github/instructionslehetőséget.
  4. Amikor a rendszer fájlnevet kér, írja be a következőt tsql-conventions: .

A Visual Studio Code létrehozza a .github/instructions/tsql-conventions.instructions.md elemet előre létrehozott front matterrel.

2. lépés: Konvenciók hozzáadása

Cserélje le a sablonszöveget a csapata T-SQL-szabványaira. Az alábbi sablon az elnevezést, az adattípusokat, a naplózási oszlopokat, a séma minősítését, a kényszerek elnevezését és a tiltott mintákat ismerteti.

---
applyTo: "**/*.sql"
---

# T-SQL conventions

## Database environment
- Local development: [!INCLUDE [sssql25-md](../../../includes/sssql25-md.md)] running in a Docker container
- Cloud / production: Azure SQL Database
- All T-SQL must be compatible with both environments

## File template
Every .sql file MUST begin with this header block:

-- ================================================================
-- Author:      <your name>
-- Created:     <YYYY-MM-DD>
-- Purpose:     <brief description>
-- ================================================================
SET ANSI_NULLS ON;
GO
SET QUOTED_IDENTIFIER ON;
GO

## T-SQL conventions
- Use camelCase for ALL identifiers: table names, column names, parameters
- Use NVARCHAR for all text columns - never VARCHAR
- Use BIGINT for all primary keys and foreign keys - never INT
- Every table MUST include these audit columns:
    createdAt  DATETIME2(7) NOT NULL DEFAULT GETUTCDATE()
    updatedAt  DATETIME2(7) NOT NULL DEFAULT GETUTCDATE()
- Always schema-qualify all objects: dbo.tableName
- Use clustered primary keys on all tables
- Foreign key column names follow the pattern: [referencedTable]Id
- Never use SELECT * - always name columns explicitly

## Constraint naming conventions
- Primary keys: PK_tableName
- Foreign keys: FK_childTable_parentTable
- Unique constraints: UQ_tableName_columnName
- Check constraints: CK_tableName_columnName
- Default constraints: DF_tableName_columnName

## What to avoid
- Do NOT generate stored procedures unless I explicitly ask for one
- Do NOT use deprecated T-SQL syntax (no *= for joins, no non-ANSI joins)
- Do NOT generate object-relational mapping (ORM) models or application code

3. lépés: A fájl mentése

GitHub Copilot mentés után azonnal felveszi az utasításokat tartalmazó fájlokat. Nincs újratöltési vagy konfigurációs lépés.

A kontraszt előtti/utáni kontraszt megtekintése

Az egyéni utasítások hatásának megtekintéséhez futtassa ugyanazt a parancssort a GitHubon Copilot Chat a fájl hozzáadása előtt és után.

Előtte: nincsenek egyéni utasítások

Egy .github/instructions/ mappa nélküli munkaterületen kérdezze meg a GitHub Copilotot:

Create a users table and a projects table for a task management app.

Jellemző kimenet:

  • CREATE TABLE Users (nincs sémaminősítés, PascalCase)
  • UserID INT IDENTITY(1,1) PRIMARY KEY
  • Nincs fájlfejlécblokk, nincs SET utasítás
  • Automatikus vagy inkonzisztens korlátozások

Utána: egyéni utasításokkal

Abban a munkaterületen, ahol létrehozta a(z) tsql-conventions.instructions.md elemet, adja meg ugyanazt az utasítást:

Create a users table and a projects table for a task management app.

Várt kimenet:

  • Teljes fájlfejléc szerzővel, dátummal, céllal, SET ANSI_NULLS ONSET QUOTED_IDENTIFIER ON
  • CREATE TABLE dbo.users (sémanévvel minősített, camelCase)
  • userId BIGINT IDENTITY(1,1) PRIMARY KEY
  • createdAt és updatedAt audit oszlopok
  • Elnevezett megkötések: PK_users, UQ_users_email, FK_projects_users, DF_users_createdAt

Ugyanaz a modell, ugyanaz a kérdés, ugyanaz a GitHub Copilot. Az utasítások fájlja működött.

Egyéni utasítások alkalmazásának ellenőrzése

Annak ellenőrzéséhez, hogy GitHub Copilot olvassa-e az utasítások fájlját, vizsgálja meg a hibakeresési kimenetet.

  1. A Visual Studio Code-ban válassza a Nézet>Kimenet elemet.
  2. A kimeneti csatorna legördülő listájában válassza GitHub Copilot vagy GitHub Copilot Csevegés lehetőséget.
  3. Küldjön egy üzenetet, és nézze meg a kimeneti csatornát. A kérelem teljes adattartalma, beleértve az egyéni utasításait is, megjelenik a naplóban.

Ez a hibakeresési nézet az igazság forrása. Ha a kimenet nem tartalmazza az utasításokat, ellenőrizze, hogy:

  • A fájl a következő helyen .github/instructions/<name>.instructions.md található (az .instructions.md utótag megadása kötelező).
  • A applyTo glob megegyezik a fájllal, amelyen dolgozik.
  • A fájl mentése megtörtént.

Minták és ajánlott eljárások

  • Nyelvenként vagy tartományonként egy fájl. Használjon külön fájlokat a T-SQL, TypeScript, Python stb. számára, mindegyikhez saját applyTo glob tartozik. Ne keverje a nyelveket egy fájlban.
  • Deklaratív maradjon. A listajelek és a rövid szabályok jobban működnek, mint a próza. GitHub Copilot megbízhatóbb utasításokat követ, ha azok vizsgálhatók.
  • A verzió szabályozza a fájlokat. Commitolja .github/instructions/ a tárolóba, hogy minden közreműködő automatikusan profitáljon belőle.
  • Párosítás terv móddal. Ha terv módot használ az adatbázis-tervezéshez, a konvenciók automatikusan öröklődnek. Nem kell újra megadnia őket a parancssorban.
  • Tesztelés a módosítások után. A hibakeresési nézetben ellenőrizheti, hogy az utasítások a fájl frissítésekor érvényesek-e.

Ossza meg tapasztalatait

Az MSSQL-bővítményHez tartozó GitHub Copilot pontosításához és fejlesztéséhez használja a következő GitHub-problémasablont a visszajelzés elküldéséhez: GitHub Copilot Feedback

Visszajelzés küldésekor fontolja meg a következőket:

  • Tesztelt forgatókönyvek: Tudassa velünk, hogy mely területekre összpontosított, például sémalétrehozásra, lekérdezésgenerálásra, biztonságra, honosításra.

  • Ami jól működött: Ismertesse azokat a tapasztalatokat, amelyek zökkenőmentesnek, hasznosnak mutattak, vagy amelyek meghaladták az Ön elvárásait.

  • Problémák vagy hibák: Tartalmazzon bármilyen problémát, következetlenséget vagy zavaró viselkedést. A képernyőképek és a képernyőfelvételek különösen hasznosak.

  • Fejlesztési javaslatok: Ötletek megosztása a használhatóság javítására, a lefedettség bővítésére vagy a GitHub Copilot válaszainak javítására.