Ескертпе
Бұл бетке кіру үшін қатынас шегін айқындау қажет. Жүйеге кіруді немесе каталогтарды өзгертуді байқап көруге болады.
Бұл бетке кіру үшін қатынас шегін айқындау қажет. Каталогтарды өзгертуді байқап көруге болады.
В этом кратком руководстве вы узнаете, как объяснить бизнес-логику помогает разработчикам понять и работать со сложной логикой приложения, реализованной в платформах SQL, реляционных сопоставлений объектов (ORM) или непосредственно в базе данных. Помощник анализирует код SQL, модели ORM или существующие схемы баз данных, чтобы объяснить базовые бизнес-правила и предоставить практическую документацию.
Начало работы
Убедитесь, что вы подключены к базе данных и открываете активное окно редактора с расширением MSSQL. При подключении @mssql участник чата понимает контекст среды базы данных и может предоставлять точные предложения с учетом контекста. Если вы не подключаетесь к базе данных, участник чата не имеет контекста схемы или данных для предоставления значимых ответов.
В следующих примерах используется образец базы данных AdventureWorksLT2022, доступный для загрузки на домашней странице проектов сообщества и примеров Microsoft SQL Server.
Для получения наилучших результатов настройте имена таблиц и схем в соответствии с собственной средой.
Убедитесь, что чат включает @mssql префикс. Например, введите @mssql, а затем ваш вопрос или запрос. Этот префикс гарантирует, что участник чата понимает, что вы запрашиваете помощь, связанную с SQL.
Общие сведения о бизнес-логике с помощью GitHub Copilot
GitHub Copilot поможет вам понять и объяснить бизнес-правила, внедренные в код базы данных, модели ORM и запросы приложений. GitHub Copilot предоставляет информацию на естественном языке о хранимых процедурах, запросах LINQ и выражениях Sequelize, чтобы сделать сложную логику более доступной.
Ниже приведены распространенные варианты использования и примеры того, что можно спросить через участника чата:
Объяснить логику T-SQL
Используйте GitHub Copilot для понимания и объяснения логики Transact-SQL (T-SQL), от хранимых процедур до встроенных условных инструкций. Независимо от того, просматриваете ли вы правила скидки, процедурную логику или условия оптимизации, GitHub Copilot может анализировать и документировать бизнес-правила, реализованные в T-SQL.
Объяснение хранимой процедуры
Explain what the `SalesLT.uspGetCustomerOrderHistory` stored procedure does and suggest ways to optimize it.
Отладка хранимой процедуры
Debug the `SalesLT.uspGetTopSellingProducts` stored procedure and suggest improvements.
Описание бизнес-логики в фрагменте кода
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;
Объяснить логику ORM
Объяснение запроса 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)
)
Объяснение запроса Entity Framework LINQ
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"
});
Объяснить бизнес-логику в запросе 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
}
});
Объясните и закомментируйте запрос 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')
});
Создание запроса SQLAlchemy для списка продуктов
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.
Получение сведений о клиентах с помощью запроса 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:
Понимание бизнес-намерений через запросы
GitHub Copilot помогает разработчикам понять не только то, как работает запрос, но и почему он существует. Это объяснение включает в себя реальное назначение фильтров данных, группирования и агрегирования. Эти объяснения особенно полезны во время подключения, что позволяет разработчикам понять цели, отчеты, шлюзы логики или системные метрики, внедренные в код SQL и ORM.
Описание бизнес-целей в запросе 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;
Сводка намерений запроса 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;
Описание бизнес-логики в хранимой процедуре
Analyze the `SalesLT.uspGetCustomerOrderHistory` stored procedure and describe the business logic it implements.
Объяснение бизнес-логики в запросе Entity Framework LINQ
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();
Объясните бизнес-предположения в запросе 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')
});
Оставьте свой отзыв
Чтобы помочь нам уточнить и улучшить GitHub Copilot для расширения MSSQL, используйте следующий шаблон проблемы GitHub для отправки отзывов: GitHub Copilot Feedback
При отправке отзывов рассмотрите возможность включения:
Тестируемые сценарии: сообщите нам, на какие области вы ориентированы, например создание схемы, создание запросов, безопасность, локализация.
Что хорошо работало: Опишите любые ситуации, которые были безупречными, полезными или превысили ваши ожидания.
Проблемы или ошибки: включение любых проблем, несоответствий или запутанных действий. Снимки экрана или записи экрана особенно полезны.
Предложения по улучшению: Делитесь идеями для улучшения удобства использования, расширения функциональности или улучшения ответов от GitHub Copilot.
Связанный контент
- Расширение GitHub Copilot для MSSQL для Visual Studio Code
- Быстрый старт: Использование чата и встроенных предложений GitHub Copilot
- Быстрый старт: Создание кода
- Краткое руководство. Использование обозревателя схем и конструктора
- Быстрый старт: Использование построителя интеллектуальных запросов
- Краткое руководство: Помощник оптимизации запросов
- Краткое руководство: Анализатор безопасности
- Краткое руководство: Инструмент поддержки локализации и форматирования
- Быстрое начало: Создание данных для тестирования и имитации
- Известные проблемы и ограничения