Poznámka:
Přístup k této stránce vyžaduje autorizaci. Můžete se zkusit přihlásit nebo změnit adresáře.
Přístup k této stránce vyžaduje autorizaci. Můžete zkusit změnit adresáře.
V tomto rychlém startu se dozvíte, jak vysvětlení obchodní logiky pomáhá vývojářům pochopit a pracovat s komplexní aplikační logikou implementovanou v architekturách SQL, ORM (Object-Relational Mapování) nebo přímo v databázi. Pomocník analyzuje kód SQL, modely ORM nebo existující schémata databáze, aby vysvětlil podkladová obchodní pravidla a poskytl dokumentaci s možností akce.
Začínáme
Ujistěte se, že jste připojení k databázi a máte otevřené okno aktivního editoru s rozšířením MSSQL. Toto připojení umožňuje účastníkovi @mssql chatu porozumět kontextu vašeho databázového prostředí a umožnit přesné a kontextové návrhy. Bez připojení k databázi nebude účastník chatu mít schéma ani datový kontext, aby poskytoval smysluplné odpovědi.
Následující příklady používají AdventureWorksLT2022 ukázkovou databázi, kterou si můžete stáhnout z domovské stránky Ukázky microsoft SQL Serveru a projekty komunity .
Nejlepších výsledků dosáhnete, když upravíte názvy tabulek a schémat tak, aby odpovídaly vašemu vlastnímu prostředí.
Ujistěte se, že chat obsahuje předponu @mssql . Například zadejte @mssql svůj dotaz nebo výzvu. Tím zajistíte, že účastník chatu pochopí, že žádáte o pomoc související s SQL.
Principy obchodní logiky pomocí GitHub Copilotu
GitHub Copilot vám pomůže pochopit a vysvětlit obchodní pravidla vložená do databázového kódu, modelů ORM a aplikačních dotazů. Z uložených procedur až po dotazy LINQ a výrazy Sequelize poskytuje GitHub Copilot přehledy přirozeného jazyka, aby byla složitější logika přístupnější.
Tady jsou běžné případy použití a příklady toho, co se můžete zeptat prostřednictvím účastníka chatu:
Vysvětlení logiky T-SQL
Pomocí GitHub Copilotu můžete pochopit a vysvětlit logiku Transact-SQL (T-SQL) od uložených procedur po vložené podmíněné příkazy. Bez ohledu na to, jestli kontrolujete pravidla slev, procedurální logiku nebo podmínky optimalizace, může GitHub Copilot analyzovat a dokumentovat obchodní pravidla implementovaná v T-SQL.
Vysvětlení uložené procedury
Explain what the `SalesLT.uspGetCustomerOrderHistory` stored procedure does and suggest ways to optimize it.
Ladění uložené procedury
Debug the `SalesLT.uspGetTopSellingProducts` stored procedure and suggest improvements.
Vysvětlení obchodní logiky v fragmentu kódu
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;
Vysvětlení logiky ORM
Vysvětlení dotazu SQLAlchemy
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)
)
Vysvětlete dotaz LINQ v 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"
});
Vysvětlení obchodní logiky v dotazu Prisma
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
}
});
Vysvětlit a okomentovat dotaz Sequelize
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')
});
Vygenerování dotazu SQLAlchemy pro seznam produktů
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.
Načíst informace o zákazníkovi pomocí dotazu Prisma
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:
Vysvětlení obchodního záměru prostřednictvím dotazů
GitHub Copilot pomáhá vývojářům pochopit, jak funguje dotaz, ale proč existuje. Toto vysvětlení zahrnuje skutečný účel filtrů dat, seskupení a agregací. Tato vysvětlení jsou obzvláště užitečná během procesu zaškolení, protože umožňují vývojářům pochopit cíle sestav, logických operací nebo systémových metrik vložených do kódu SQL a ORM.
Popis obchodních cílů v dotazu T-SQL
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;
Shrnutí záměru dotazu T-SQL
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;
Popis obchodní logiky v uložené proceduře
Analyze the `SalesLT.uspGetCustomerOrderHistory` stored procedure and describe the business logic it implements.
Vysvětlení obchodní logiky v dotazu LINQ 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();
Vysvětlení obchodních předpokladů v dotazu Sequelize
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')
});
Podělte se o své zkušenosti
Pokud nám chcete pomoct upřesnit a vylepšit GitHub Copilot pro rozšíření MSSQL, odešlete zpětnou vazbu pomocí následující šablony problému Na GitHubu: Váš názor na GitHub Copilot
Při odesílání zpětné vazby zvažte následující:
Otestované scénáře – Dejte nám vědět, na které oblasti jste se zaměřili, například na vytváření schématu, generování dotazů, zabezpečení, lokalizaci.
Co dobře fungovalo – popište všechny zážitky, které se cítily hladce, užitečné nebo překročily vaše očekávání.
Problémy nebo chyby – Zahrňte všechny problémy, nekonzistence nebo matoucí chování. Snímky obrazovky nebo nahrávky obrazovky jsou užitečné hlavně.
Návrhy ke zlepšení – Sdílejte nápady na zlepšení použitelnosti, rozšíření pokrytí nebo vylepšení odpovědí GitHub Copilotu.
Související obsah
- Rozšíření GitHub Copilot for MSSQL pro Visual Studio Code
- Rychlý start: Použití chatu a vložených návrhů GitHub Copilotu
- Rychlý start: Generování kódu
- Rychlý start: Použití Průzkumníka schémat a návrháře
- Rychlý start: Použití tvůrce inteligentních dotazů
- Rychlý start: Pomocník pro optimalizaci dotazů
- Rychlý start: Analyzátor zabezpečení
- Rychlý start: Pomocná rutina lokalizace a formátování
- Rychlý start: Generování dat pro testování a napodobování
- Omezení a známé problémy