Hızlı Başlangıç: GitHub Copilot T-SQL kurallarınızla hizalamak için özel yönergeleri kullanma

Özel yönergeler ekibinizin standartlarını GitHub Copilot öğreterek ister soru modundan, aracı modundan ister satır içi tamamlamalardan gelen her yanıtın adlandırma, biçimlendirme ve veri türü kurallarınıza uygun olmasına neden olur. Kapsamı dosyalar olarak .sql belirlenmiş tek bir Markdown dosyası, genel Transact-SQL (T-SQL) çıkışını projenizle eşleşen hizalanmış çıktıya değiştirir.

Tip

Özel yönergeler, soru modu, düzenleme modu, aracı modu ve satır içi tamamlamalar dâhil olmak üzere, applyTo glob ile eşleşen tüm GitHub Copilot arayüzlerinde geçerlidir. Bunları dil veya etki alanı başına bir kez ayarlayın.

Önemli çıkarımlar

  • Özel yönergeler çalışma alanınızın içinde .github/instructions/<name>.instructions.md yer alır.
  • applyTo ön bilgi anahtarı, her dosyayı **/*.sql gibi bir glob desenine göre kapsamlandırır.
  • GitHub Copilot her isteğe otomatik olarak eşleşen yönergeler ekler. Eğik çizgi komutu gerekmez.
  • Özel yönergeler olmadan, GitHub Copilot varsayılan olarak genel kuralları (PascalCase, INT birincil anahtarlar, dosya şablonu yok) kullanır.

Prerequisites

  • MSSQL uzantısının yüklü olduğu Visual Studio Code.
  • Etkin bir GitHub Copilot aboneliği.
  • Çalışma alanı klasörü. Bu hızlı başlangıç, .github/instructions/ içinde yeni dosyalar oluşturur.

Özel yönergeler nelerdir?

Özel yönergeler, GitHub Copilot’un okuduğu ve glob deseniyle eşleşen her isteğe uyguladığı Markdown dosyalarıdır. Visual Studio Code bunları yerel olarak destekler. MSSQL uzantısı için ek yapılandırma gerekmez.

Önde gelen her yapay zeka (AI) kodlama aracı artık bu yaklaşımın bir sürümünü destekliyor: Cursor .cursorrules kullanıyor, OpenAI Codex AGENTS.md kullanıyor, Anthropic’in Claude Code’u ise CLAUDE.md kullanıyor. Visual Studio Code'daki GitHub Copilot, .github/instructions/*.instructions.md kullanır. Bunun avantajı, aynı depoda kapsamı farklı dosya türlerine göre belirlenmiş birden çok yönerge dosyası olmasıdır.

Bu özelliğin genel Visual Studio Code belgeleri için bkz. Visual Studio Code'da yapay zeka yanıtlarını özelleştirme.

Özel yönergeler T-SQL için neden önemlidir?

Modern GitHub Copilot, kutudan çıktığı gibi etkileyici T-SQL üretir: NVARCHAR sütunlar, DATETIME2 zaman damgaları ve mantıklı kısıtlama adları. Ancak varsayılan olarak ekibinizin kullanamayabileceği kurallar kullanılır.

GitHub Copilot, özel yönergeler olmadan genellikle şunları yapar:

  • Ekibinizin veya UserIDyerine tablo ve sütun adları (CreatedAt, camelCase) için snake_case kullanır.
  • BIGINT yerine INT birincil anahtarları kullanır.
  • Dosya üst bilgisi şablonlarını, SET ANSI_NULLS ON ve SET QUOTED_IDENTIFIER ON atlar.
  • Şema nitelemesini atlar (CREATE TABLE users yerine CREATE TABLE dbo.users).
  • Otomatik adlandırılmış kısıtlamalar oluşturur; PK_tableName / FK_child_parent düzeninizi izlemez.

Bu varsayılan değerlerden hiçbiri yanlış değil. Onlar senin değil. Özel yönergeler tüm bunları tek bir dosyayla düzeltir.

T-SQL kuralları dosyası oluşturma

Bu örnek, camelCase adlandırma, şema niteliği, denetim sütunları ve dosya üst bilgisi şablonunu zorunlu kılan bir yönergeler dosyası oluşturur.

1. Adım: Dosyayı oluşturmak için GitHub Copilot kullanma

  1. Visual Studio Code GitHub Copilot Chat görünümünü açın.
  2. Ayarlar (dişli) simgesini seçin, ardından Yönergeler ve Kurallar>Yeni yönerge dosyası seçeneğini belirleyin.
  3. Bir konum istendiğinde .github/instructions öğesini seçin.
  4. Bir dosya adı istendiğinde girin tsql-conventions.

Visual Studio Code, otomatik oluşturulmuş ön bilgilerle .github/instructions/tsql-conventions.instructions.md oluşturur.

2. Adım: Kurallarınızı ekleme

İskelet içeriği ekibinizin T-SQL standartlarıyla değiştirin. Aşağıdaki şablon adlandırmayı, veri türlerini, denetim sütunlarını, şema niteliğini, kısıtlama adlandırmasını ve yasaklanmış desenleri kapsar.

---
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. Adım: Dosyayı kaydetme

GitHub Copilot, kaydettiğiniz anda yönergeler dosyalarını alır. Yeniden yükleme veya yapılandırma adımı yoktur.

Öncesi/sonrası karşılaştırmasını görün

Özel yönergelerin etkisini görmek için, dosyayı eklemeden önce ve ekledikten sonra GitHub Copilot Chat aynı istemi çalıştırın.

Önce: özel yönerge yok

.github/instructions/ klasörü olmayan bir çalışma alanında GitHub Copilot'a şunu sorun:

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

Tipik çıkış:

  • CREATE TABLE Users (şema niteliği yok, PascalCase)
  • UserID INT IDENTITY(1,1) PRIMARY KEY
  • Dosya başlık bloğu yok, SET ifadesi yok
  • Otomatik adlandırılmış veya tutarsız kısıtlamalar

Sonra: özel yönergelerle

oluşturduğunuz tsql-conventions.instructions.mdçalışma alanında aynı istemi sorun:

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

Beklenen çıkış:

  • Yazar, tarih, amaç, SET ANSI_NULLS ON, SET QUOTED_IDENTIFIER ON içeren tam dosya üst bilgisi
  • CREATE TABLE dbo.users (şema nitelikli, camelCase)
  • userId BIGINT IDENTITY(1,1) PRIMARY KEY
  • createdAt ve updatedAt denetim sütunları
  • Adlandırılmış kısıtlamalar: PK_users, UQ_users_email, FK_projects_users, DF_users_createdAt

Aynı model, aynı istem, aynı GitHub Copilot. Yönergeler dosyası işe yaramıştı.

Özel yönergelerin uygulandığını doğrulama

GitHub Copilot yönergeler dosyanızı okuduğundan emin olmak için hata ayıklama çıkışını inceleyin.

  1. Visual Studio Code'da Görünüm>Çıktı'yı seçin.
  2. Çıkış kanalı açılır listesinde GitHub Copilot veya GitHub Copilot Chat seçin.
  3. Bir istem gönderin ve çıkış kanalını izleyin. Özel yönergeleriniz de dahil olmak üzere istek yükünün tamamı günlükte görünür.

Bu hata ayıklama görünümü gerçeğin kaynağıdır. Çıktıda yönergeleriniz yoksa şunları denetleyin:

  • Dosya .github/instructions/<name>.instructions.md konumundadır (.instructions.md soneki gereklidir).
  • Glob applyTo , üzerinde çalıştığınız dosyayla eşleşir.
  • Dosya kaydedilir.

Desenler ve en iyi yöntemler

  • Dil veya etki alanı başına bir dosya. T-SQL, TypeScript, Python vb. için ayrı dosyalar kullanın ve her biri kendi applyTo glob'ını kullanın. Dilleri tek bir dosyada karıştırmayın.
  • Bildirimde bulunur. Madde işaretleri ve kısa kurallar, düzyazıdan daha etkilidir. GitHub Copilot, taranabilir olduğunda yönergeleri daha güvenilir bir şekilde izler.
  • Dosyaları sürüm kontrolüne alın. .github/instructions/ öğesini deponuza işleyin, böylece katkıda bulunan herkes bundan otomatik olarak yararlanır.
  • Plan moduyla eşleştirin. Veritabanı tasarımı için plan modunu kullandığınızda kurallar otomatik olarak devralınır. Bunları istemde tekrarlamanız gerekmez.
  • Değişikliklerden sonra test edin. Dosyayı her güncelleştirdiğinizde yönergelerin uygulandığını onaylamak için hata ayıklama görünümünü kullanın.

Deneyiminizi paylaşma

MSSQL uzantısı için GitHub Copilot'ı geliştirmemize ve geliştirmemize yardımcı olmak için aşağıdaki GitHub sorun şablonunu kullanarak geri bildiriminizi gönderin: GitHub Copilot Geri Bildirimi

Geri bildirim gönderirken şunları dahil etmeyi göz önünde bulundurun:

  • Test edilen senaryolar: Şema oluşturma, sorgu oluşturma, güvenlik, yerelleştirme gibi odaklandığınız alanları bize bildirin.

  • İyi çalışan şeyler: Sorunsuz, yararlı veya beklentilerinizi aşan deneyimleri açıklayın.

  • Sorunlar veya hatalar: Tüm sorunları, tutarsızlıkları veya kafa karıştırıcı davranışları dahil edin. Ekran görüntüleri veya ekran kayıtları özellikle yararlıdır.

  • İyileştirme önerileri: Kullanılabilirliği geliştirmeye, kapsamı genişletmeye veya GitHub Copilot'un yanıtlarını geliştirmeye yönelik fikirleri paylaşın.