Freigeben über


Schnellstart: Verwenden der Geschäftslogik-Erklärung

In dieser Schnellstartanleitung erfahren Sie, wie der Geschäftslogik-Erklärunger Entwicklern hilft, komplexe Anwendungslogik zu verstehen und zu arbeiten, die in SQL-, ORM- (Object-Relational Mapping)-Frameworks oder direkt in der Datenbank implementiert ist. Der Assistent analysiert SQL-Code, ORM-Modelle oder vorhandene Datenbankschemas, um die zugrunde liegenden Geschäftsregeln zu erläutern und umsetzbare Dokumentation bereitzustellen.

Loslegen

Stellen Sie sicher, dass Sie mit einer Datenbank verbunden sind und ein aktives Editorfenster mit der MSSQL-Erweiterung geöffnet ist. Diese Verbindung ermöglicht es dem @mssql Chatteilnehmer, den Kontext Ihrer Datenbankumgebung zu verstehen und präzise und kontextbezogene Vorschläge zu ermöglichen. Ohne Datenbankverbindung verfügt der Chatteilnehmer nicht über das Schema oder den Datenkontext, um aussagekräftige Antworten bereitzustellen.

In den folgenden Beispielen wird die AdventureWorksLT2022 Beispieldatenbank verwendet, die Sie auf der Startseite von Microsoft SQL Server-Beispielen und Communityprojekten herunterladen können.

Um optimale Ergebnisse zu erzielen, passen Sie Tabellen- und Schemanamen an Ihre eigene Umgebung an.

Stellen Sie sicher, dass der Chat das @mssql Präfix enthält. Geben Sie @mssql z. B. gefolgt von Ihrer Frage oder Aufforderung ein. Dadurch wird sichergestellt, dass der Chatteilnehmer versteht, dass Sie sql-bezogene Unterstützung anfordern.

Grundlegendes zur Geschäftslogik mit GitHub Copilot

GitHub Copilot kann Ihnen helfen, Geschäftsregeln zu verstehen und zu erläutern, die in Datenbankcode, ORM-Modelle und Anwendungsabfragen eingebettet sind. Von gespeicherten Prozeduren bis hin zu LINQ-Abfragen und Sequelize-Ausdrücken bietet GitHub Copilot Einblicke in natürliche Sprachen, um komplexe Logik barrierefreier zu machen.

Nachfolgend finden Sie häufige Anwendungsfälle und Beispiele dafür, was Sie über den Chatteilnehmer fragen können:

Erläutern der T-SQL-Logik

Verwenden Sie GitHub Copilot, um Transact-SQL -Logik (T-SQL) von gespeicherten Prozeduren bis hin zu inlinebedingten Anweisungen zu verstehen und zu erläutern. Unabhängig davon, ob Sie Rabattregeln, Verfahrenslogik oder Optimierungsbedingungen überprüfen, kann GitHub Copilot Geschäftsregeln analysieren und dokumentieren, die in T-SQL implementiert sind.

Erläutern einer gespeicherten Prozedur

Explain what the `SalesLT.uspGetCustomerOrderHistory` stored procedure does and suggest ways to optimize it.

Debuggen einer gespeicherten Prozedur

Debug the `SalesLT.uspGetTopSellingProducts` stored procedure and suggest improvements.

Erläutern der Geschäftslogik in einem Codeausschnitt

Analyze the following SQL code snippet from my current database. Document the business rules implemented in this discount application process, including conditions for eligibility, discount rate adjustments, and any limits imposed on the discount amount. Also, provide actionable insights or suggestions to improve clarity or performance if necessary.

DECLARE @OrderTotal AS DECIMAL (10, 2) = 1500.00;
DECLARE @DiscountCode AS NVARCHAR (20) = 'DISCOUNT10';
DECLARE @DiscountPct AS DECIMAL (5, 2) = CASE WHEN @OrderTotal > 1000.00 THEN 5.0 ELSE 0.0 END;

IF @DiscountCode = 'DISCOUNT10'
    BEGIN
        SET @DiscountPct = CASE WHEN @DiscountPct < 10.0 THEN 10.0 ELSE @DiscountPct END;
    END

DECLARE @DiscountAmount AS DECIMAL (10, 2) = (@OrderTotal * @DiscountPct / 100.0);

IF @DiscountAmount > 200.00
    BEGIN
        SET @DiscountAmount = 200.00;
    END

SELECT @OrderTotal AS OrderTotal,
       @DiscountPct AS DiscountPercentage,
       @DiscountAmount AS DiscountAmount;

Erläutern der ORM-Logik

Erläutern einer SQLAlchemy-Abfrage

Explain what the following SQLAlchemy query does:

from sqlalchemy import func

top_customers = (
    session.query(SalesOrderHeader.CustomerID, func.count().label("OrderCount"))
    .group_by(SalesOrderHeader.CustomerID)
    .order_by(func.count().desc())
    .limit(10)
)

Erläutern einer LINQ-Abfrage von Entity Framework

What does this Entity Framework LINQ query do? Describe how it groups customers by tier based on their total purchases.

var customerTiers = context.SalesOrderHeaders
    .GroupBy(o => o.CustomerID)
    .Select(g => new {
        CustomerID = g.Key,
        TotalSpent = g.Sum(o => o.TotalDue),
        Tier = g.Sum(o => o.TotalDue) >= 10000 ? "Gold" :
               g.Sum(o => o.TotalDue) >= 5000 ? "Silver" : "Bronze"
    });

Erläutern der Geschäftslogik in einer Prisma-Abfrage

Analyze the logic of this Prisma query and explain how it determines which products are considered "low inventory".

const lowInventoryProducts = await prisma.product.findMany({
  where: {
    SafetyStockLevel: {
      lt: 50
    }
  },
  select: {
    ProductID: true,
    Name: true,
    SafetyStockLevel: true
  }
});

Erläutern und Kommentieren einer Sequelize-Abfrage

Review and explain what this Sequelize query does. Add inline comments to clarify how it calculates total revenue per customer and filters for customers with significant spending:

const results = await SalesOrderHeader.findAll({
  attributes: ['CustomerID', [sequelize.fn('SUM', sequelize.col('TotalDue')), 'TotalSpent']],
  group: ['CustomerID'],
  having: sequelize.literal('SUM(TotalDue) > 5000')
});

Generieren einer SQLAlchemy-Abfrage für eine Liste von Produkten

Using SQLAlchemy, generate a query to list products that have never been ordered and ask GitHub Copilot to explain the join logic and filtering behavior.

Abrufen von Kundeninformationen mithilfe einer Prisma-Abfrage

In Prisma, write a query that retrieves customers who placed an order in the last 30 days. Explain what the following Prisma query does. Add inline comments to clarify how the date filtering works and how recent orders are determined:

Geschäftsabsichten durch Abfragen verstehen

GitHub Copilot hilft Entwicklern nicht nur zu verstehen, wie eine Abfrage funktioniert, sondern warum sie vorhanden ist. Diese Erklärung umfasst den realen Zweck hinter Datenfiltern, Gruppierungen und Aggregationen. Diese Erklärungen sind besonders nützlich beim Onboarding, sodass Entwickler die Ziele hinter Berichten, Logikgaten oder Systemmetriken erfassen können, die in SQL- und ORM-Code eingebettet sind.

Beschreiben der Geschäftsziele in einer T-SQL-Abfrage

Describe the business goal of the following SQL query. What insight is it trying to surface?

SELECT TOP 10 CustomerID,
              COUNT(*) AS OrderCount
FROM SalesLT.SalesOrderHeader
GROUP BY CustomerID
ORDER BY OrderCount DESC;

Zusammenfassen der Absicht einer T-SQL-Abfrage

Summarize what this query is intended to achieve from a business perspective.

SELECT ProductID,
       SUM(LineTotal) AS TotalSales
FROM SalesLT.SalesOrderDetail
GROUP BY ProductID
HAVING SUM(LineTotal) > 10000;

Beschreiben der Geschäftslogik in einer gespeicherten Prozedur

Analyze the `SalesLT.uspGetCustomerOrderHistory` stored procedure and describe the business logic it implements.

Erläutern der Geschäftslogik in einer LINQ-Abfrage von Entity Framework

Explain this Entity Framework LINQ query and describe what business logic it implements:

var highValueCustomers = context.SalesOrderHeaders
    .Where(o => o.TotalDue > 1000)
    .GroupBy(o => o.CustomerID)
    .Select(g => new { CustomerID = g.Key, OrderCount = g.Count() })
    .OrderByDescending(x => x.OrderCount)
    .Take(10)
    .ToList();

Erläutern von Geschäftsannahmen in einer Sequelize-Abfrage

Using Sequelize, explain what this query does and describe any business assumptions it makes:

const customerRevenue = await SalesOrderHeader.findAll({
  attributes: ['CustomerID', [sequelize.fn('SUM', sequelize.col('TotalDue')), 'TotalSpent']],
  group: ['CustomerID'],
  having: sequelize.literal('SUM(TotalDue) > 5000')
});

Teilen von Erfahrungen

Um uns dabei zu helfen, GitHub Copilot für die MSSQL-Erweiterung zu verfeinern und zu verbessern, verwenden Sie die folgende GitHub-Problemvorlage, um Ihr Feedback zu übermitteln: GitHub Copilot Feedback

Berücksichtigen Sie bei der Übermittlung von Feedback Folgendes:

  • Getestete Szenarien – Teilen Sie uns mit, auf welche Bereiche Sie sich konzentrieren, z. B. Schemaerstellung, Abfragegenerierung, Sicherheit, Lokalisierung.

  • Was gut funktioniert hat – Beschreiben Sie alle Erfahrungen, die sich reibungslos, hilfreich fühlen oder Ihre Erwartungen überschritten haben.

  • Probleme oder Fehler – Schließen Sie alle Probleme, Inkonsistenzen oder verwirrende Verhaltensweisen ein. Screenshots oder Bildschirmaufzeichnungen sind besonders hilfreich.

  • Verbesserungsvorschläge – Teilen Sie Ideen zur Verbesserung der Benutzerfreundlichkeit, zur Erweiterung der Abdeckung oder zur Verbesserung der Antworten von GitHub Copilot.