Nota
O acesso a esta página requer autorização. Podes tentar iniciar sessão ou mudar de diretório.
O acesso a esta página requer autorização. Podes tentar mudar de diretório.
Neste quickstarter, aprende como o explicador de lógica de negócio ajuda os programadores a compreender e a trabalhar com lógica de aplicação complexa implementada em SQL, frameworks de mapeamento objeto-relacional (ORM) ou diretamente na base de dados. O assistente analisa o código SQL, modelos ORM ou esquemas de banco de dados existentes para explicar as regras de negócios subjacentes e fornecer documentação acionável.
Introdução
Certifica-te de que estás ligado a uma base de dados e que tens uma janela de editor ativa aberta com a extensão MSSQL. Quando se liga, o participante @mssql do chat compreende o contexto do seu ambiente de base de dados e pode dar sugestões precisas e conscientes do contexto. Se não se ligar a uma base de dados, o participante do chat não tem o esquema ou contexto de dados para fornecer respostas significativas.
Os exemplos a seguir usam o AdventureWorksLT2022 banco de dados de exemplo, que você pode baixar da home page de Exemplos e Projetos da Comunidade do Microsoft SQL Server .
Para obter melhores resultados, ajuste os nomes de tabelas e esquemas para corresponder ao seu próprio ambiente.
Certifique-se de que o chat inclui o prefixo @mssql . Por exemplo, digite @mssql seguido de a sua pergunta ou solicitação. Este prefixo garante que o participante do chat percebe que está a pedir assistência relacionada com SQL.
Entenda a lógica de negócios com o GitHub Copilot
O GitHub Copilot pode ajudá-lo a entender e explicar as regras de negócios incorporadas no código do banco de dados, modelos ORM e consultas de aplicativos. De procedimentos armazenados a consultas LINQ e expressões Sequelize, o GitHub Copilot fornece insights de linguagem natural para tornar a lógica complexa mais acessível.
Aqui estão casos de uso comuns e exemplos do que você pode perguntar através do participante do bate-papo:
Explicar a lógica T-SQL
Use o GitHub Copilot para compreender e explicar a lógica do Transact-SQL (T-SQL), desde procedimentos armazenados até instruções condicionais em linha. Se você está revisando regras de desconto, lógica processual ou condições de otimização, o GitHub Copilot pode analisar e documentar regras de negócios implementadas no T-SQL.
Explique um procedimento armazenado
Explain what the `SalesLT.uspGetCustomerOrderHistory` stored procedure does and suggest ways to optimize it.
Depurar um procedimento armazenado
Debug the `SalesLT.uspGetTopSellingProducts` stored procedure and suggest improvements.
Explique a lógica de negócio num excerto de código
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;
Explicar a lógica ORM
Explique uma consulta 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)
)
Explique uma consulta LINQ do 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"
});
Explique a lógica de negócio numa consulta 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
}
});
Explique e comente uma consulta 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')
});
Gerar uma consulta SQLAlchemy para uma lista de produtos
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.
Recuperar informações do cliente usando uma consulta 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:
Compreender a intenção de negócios por meio de consultas
O GitHub Copilot ajuda os desenvolvedores a entender não apenas como uma consulta funciona, mas por que ela existe. Esta explicação inclui o propósito real por detrás dos filtros, agrupamentos e agregações de dados. Essas explicações são especialmente úteis durante a integração, permitindo que os desenvolvedores compreendam os objetivos por trás de relatórios, portas lógicas ou métricas do sistema incorporadas em código SQL e ORM.
Descreva os objetivos de negócio numa consulta 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;
Resumir a intenção de uma consulta 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;
Descreva a lógica de negócio num procedimento armazenado
Analyze the `SalesLT.uspGetCustomerOrderHistory` stored procedure and describe the business logic it implements.
Explique a lógica de negócio numa consulta LINQ do 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();
Explique pressupostos de negócio numa consulta 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')
});
Partilhar a sua experiência
Para nos ajudar a refinar e melhorar o Copilot do GitHub para a extensão MSSQL, use o seguinte modelo de problema do GitHub para enviar seus comentários: Feedback do Copiloto do GitHub
Ao enviar comentários, considere incluir:
Cenários testados: Diga-nos em que áreas se focou, por exemplo, criação de esquemas, geração de consultas, segurança, localização.
O que funcionou bem: Descreva quaisquer experiências que tenham sido tranquilas, úteis ou que tenham superado as suas expectativas.
Problemas ou erros: Inclua quaisquer problemas, inconsistências ou comportamentos inesperados. Capturas de tela ou gravações de tela são especialmente úteis.
Sugestões para melhoria: Partilhe ideias para melhorar a usabilidade, expandir a cobertura ou melhorar as respostas do GitHub Copilot.
Conteúdo relacionado
- Extensão GitHub Copilot for MSSQL para Visual Studio Code
- Início Rápido: Usa o chat e sugestões inline do GitHub Copilot
- Quickstart: Gerar código
- Início rápido: Use o explorador de esquemas e o designer
- Início rápido: Use o construtor inteligente de consultas
- Quickstart: Assistente otimizador de consultas
- Quickstart: Analisador de segurança
- Quickstart: Ajuda de localização e formatação
- Guia Rápido: Gerar dados para testes e simulação
- Problemas conhecidos e de limitações