Dela via


Använda databasinstruktioner med GitHub Copilot i SQL Server Management Studio (förhandsversion)

Databasinstruktioner tillhandahåller GitHub Copilot i SQL Server Management Studio (SSMS) med databasspecifik kontext och vägledning som finns direkt i databasen. Databasägare och team kan använda dem för att beskriva affärsregler, datakonventioner och användningsmönster. Med databasinstruktioner kan Copilot generera mer exakta, meningsfulla och konsekventa svar när användare ställer frågor eller skriver frågor. Databasinstruktioner fungerar som levande dokumentation som skickas med databasen och tillämpas automatiskt under Copilot-interaktioner.

I den här artikeln får du lära dig hur du använder databasinstruktioner, vilket ytterligare gör det möjligt för användare och Copilot att hitta rätt objekt och information snabbare. Den här funktionen hjälper till att minska den tid som ägnas åt att tillhandahålla databas, företag och intern kunskap till Copilot.

Relaterad information om GitHub Copilot Chat finns i Använda GitHub Copilot Chat-upplevelsen i SQL Server Management Studio (förhandsversion).

Så här fungerar databasinstruktioner

Databasinstruktioner lagras som metadata i databasen, vilket gör att Copilot automatiskt kan identifiera och tillämpa dem vid körning. När en användare interagerar med GitHub Copilot för en databas, till exempel ställa en fråga på naturligt språk eller generera T-SQL, innehåller Copilot dessa instruktioner som extra kontext. Den här kontexten säkerställer att svar återspeglar affärsdefinitioner, kanoniska tabeller och domänspecifika regler i stället för att bara förlita sig på schemanamn eller gissningar. Instruktioner bevaras mellan sessioner och är tillgängliga för alla användare som har åtkomst till samma databas.

Förutsättningar

Databasinstruktioner för GitHub Copilot i SSMS förlitar sig på information i utökade egenskaper.

  1. Installera SSMS 22.3 eller en senare version med AI Assistance-arbetsbelastningen.

  2. Logga in på ditt GitHub-konto med Copilot-åtkomst.

Använd GitHub Copilot kostnadsfritt. Registrera dig och använd AI för att koda snabbare och effektivare.

Använda GitHub Copilot för att lägga till eller visa databasinstruktioner

De här stegen visar hur du skapar och använder databasinstruktioner med GitHub Copilot.

Ställ en fråga till Copilot för att avslöja saknade kontexter

Börja med att ställa en fråga till Copilot om dina data på naturligt språk. Om verksamheten till exempel What was revenue for the last quarter of the year? har olika startdatum för räkenskapsår och kalenderår, eller om intäkter kräver en beräkning som omfattar flera tabeller, är relevanta tabeller eller kolumner bra kandidater för en databasinstruktion.

Definiera affärsregeln som en databasinstruktion

I Copilot-chatten beskriver du regeln eller förtydligandet som du vill att Copilot ska komma ihåg. Till exempel: Add an instruction for the Finance.CompanyRevenue table to state that revenue is defined as SUM(NetAmount) excluding refunds recorded in Finance.Refunds.

Spara instruktionen i databasen

När Copilot genererar T-SQL-syntaxen för att lägga till instruktionen som en utökad egenskap måste du spara den här informationen som en databasinstruktion. I askläge kan GitHub Copilot inte köra ändringsfrågor mot databasen.

-- 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';

När du har lagt till instruktionen i databasen tillämpar Copilot automatiskt informationen på framtida interaktioner.

Använd Copilot med instruktionen tillämpad

Ställ samma eller en relaterad fråga till Copilot igen, What was revenue for the last quarter of the year? copilot använder nu den sparade instruktionen för att generera resultat som överensstämmer med din affärsdefinition av intäkter, utan att du behöver upprepa regeln. Du kan också be Copilot Show me the query used to get this information. att bekräfta Copilots förståelse av instruktionen.

Fler exempel

Det finns oändliga scenarier där affärsregler måste tillämpas för ett databasobjekt, inklusive tabeller, kolumner och lagrade procedurer.

  • 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

När du använder databasinstruktioner med Copilot kan du också fråga efter instruktioner som för närvarande finns.

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

Använda GitHub Copilot för att skapa en databas konstitution

GitHub Copilot i SSMS stöder också en unik konstitution för databasen, som anger den högsta prioritetsinstruktionen för databasen. Konstitutionen kan innehålla rekommendationer, kodningsriktlinjer, kvarhållningsprinciper med mera.

Anmärkning

Implementering av en databaskonstitution gäller för GitHub Copilot-konversationer för varje användare som använder GitHub Copilot i SSMS. Rekommendationerna och riktlinjerna gäller endast för GitHub Copilot-konversationer.

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.';

Kravspecifikation

Databasinstruktioner stöds för närvarande endast som utökade egenskaper. De följer AGENTS.md format för att tillhandahålla den kontext som används av GitHub Copilot. Namnet på objektets utökade egenskap måste vara AGENTS.md. Endast en egenskap med namnet AGENTS.md kan finnas för ett objekt. Om en instruktion är felaktig kan du uppdatera den med hjälp av sp_updateextendedproperty, eller ta bort den med hjälp av sp_dropextendedproperty. Det finns ingen annan konfiguration som krävs för att databasinstruktioner ska fungera.