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 quickstart, 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 frameworks SQL, ORM (Object-Relational Mapping), 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
Verifique se você está conectado a um banco de dados e se uma janela do editor ativo está aberta com a extensão MSSQL. Essa conexão permite que o participante do bate-papo @mssql compreenda o contexto do seu ambiente de banco de dados, permitindo sugestões precisas e sensíveis ao contexto. Sem uma conexão de banco de dados, o participante do bate-papo não terá o esquema ou o 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. Isso garante que o participante do bate-papo entenda que você está solicitando assistência relacionada ao 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 quais áreas você se focou, por exemplo, criação de esquema, geração de consultas, segurança, localização.
O que funcionou bem – Descreva todas as experiências que foram suaves, úteis ou que excederam as suas expectativas.
Problemas ou bugs – Inclua quaisquer problemas, inconsistências ou comportamentos confusos. Capturas de tela ou gravações de tela são especialmente úteis.
Sugestões de melhoria – Compartilhe ideias para melhorar a usabilidade, expandir a cobertura ou melhorar as respostas do Copiloto do GitHub.
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