К основному содержанию
правило официальный · GitHub

sql-sp-generation — правило для GitHub Copilot

Правило задаёт Copilot стиль для SQL: имена таблиц, ключи, транзакции, параметры и оформление хранимых процедур.

Установить в GitHub Copilot · Вручную: положить файлы Все способы и платформы ↓
.github/instructions/sql-sp-generation.instructions.md
Открыть на GitHub

Что делает sql-sp-generation

Это файл инструкций, который Copilot подхватывает при работе с файлами **/*.sql. Внутри — набор соглашений по трём слоям сразу: схема базы, стиль запросов и хранимые процедуры.

По схеме правило требует имена таблиц и колонок в единственном числе, первичный ключ id, колонки created_at и updated_at. Внешние ключи объявляются inline, с именем и опциями ON DELETE CASCADE и ON UPDATE CASCADE. В запросах — заглавные ключевые слова, явный список колонок вместо SELECT *, квалификация колонок при нескольких таблицах, LIMIT/TOP для ограничения выборки. Процедуры именуются с префиксом usp_ в PascalCase, параметры — с @ и camelCase, обязательные идут первыми.

Отдельный блок про безопасность: параметризация всех запросов, prepared statements для динамического SQL, никаких учётных данных внутри скриптов. Транзакции открываются и коммитятся явно, для процедур, меняющих данные, добавляется SET NOCOUNT ON. Файл кладётся в репозиторий, поэтому правило действует на всех, кто работает с этим кодом, и спорить с ним придётся через правку самого файла.

Какие задачи решает

  • договориться о едином стиле имён таблиц и колонок в команде
  • не забыть created_at и updated_at в новых таблицах
  • писать внешние ключи с каскадами вместо ручных удалений
  • оформить хранимую процедуру с шапкой и понятным именем
  • убрать SELECT * и функции над индексированными колонками из запросов

Примеры запросов агенту

  • Сгенерируй схему таблиц для заказов и позиций заказа по правилам sql-sp-generation
  • Напиши хранимую процедуру usp_GetCustomerOrders с параметрами и шапкой
  • Перепиши этот запрос: убери SELECT * и добавь LIMIT

Как установить sql-sp-generation

Вручную: положить файлы

.github/instructions/sql-sp-generation.instructions.md

Поле applyTo задаёт, к каким файлам применять

По шагам, с командами для каждой платформы: AGENTS.md и CLAUDE.md: что это, кто читает и какой выбрать

Вопросы о sql-sp-generation

Как установить sql-sp-generation в GitHub Copilot?

Положи файл по пути .github/instructions/sql-sp-generation.instructions.md в репозитории.

Что делает sql-sp-generation?

Задаёт Copilot правила генерации SQL и хранимых процедур: именование, ключи, стиль запросов, параметры, транзакции и безопасность.

На какие файлы распространяется правило?

На **/*.sql — так указано в applyTo в начале файла.

Исходный текст

sql-sp-generation.instructions.md · MIT
---
description: 'Guidelines for generating SQL statements and stored procedures'
applyTo: '**/*.sql'
---

# SQL Development

## Database schema generation
- all table names should be in singular form
- all column names should be in singular form
- all tables should have a primary key column named `id`
- all tables should have a column named `created_at` to store the creation timestamp
- all tables should have a column named `updated_at` to store the last update timestamp

## Database schema design
- all tables should have a primary key constraint
- all foreign key constraints should have a name
- all foreign key constraints should be defined inline
- all foreign key constraints should have `ON DELETE CASCADE` option
- all foreign key constraints should have `ON UPDATE CASCADE` option
- all foreign key constraints should reference the primary key of the parent table

## SQL Coding Style
- use uppercase for SQL keywords (SELECT, FROM, WHERE)
- use consistent indentation for nested queries and conditions
- include comments to explain complex logic
- break long queries into multiple lines for readability
- organize clauses consistently (SELECT, FROM, JOIN, WHERE, GROUP BY, HAVING, ORDER BY)

## SQL Query Structure
- use explicit column names in SELECT statements instead of SELECT *
- qualify column names with table name or alias when using multiple tables
- limit the use of subqueries when joins can be used instead
- include LIMIT/TOP clauses to restrict result sets
- use appropriate indexing for frequently queried columns
- avoid using functions on indexed columns in WHERE clauses

## Stored Procedure Naming Conventions
- prefix stored procedure names with 'usp_'
- use PascalCase for stored procedure names
- use descriptive names that indicate purpose (e.g., usp_GetCustomerOrders)
- include plural noun when returning multiple records (e.g., usp_GetProducts)
- include singular noun when returning single record (e.g., usp_GetProduct)

## Parameter Handling
- prefix parameters with '@'
- use camelCase for parameter names
- provide default values for optional parameters
- validate parameter values before use
- document parameters with comments
- arrange parameters consistently (required first, optional later)


## Stored Procedure Structure
- include header comment block with description, parameters, and return values
- return standardized error codes/messages
- return result sets with consistent column order
- use OUTPUT parameters for returning status information
- prefix temporary tables with 'tmp_'


## SQL Security Best Practices
- parameterize all queries to prevent SQL injection
- use prepared statements when executing dynamic SQL
- avoid embedding credentials in SQL scripts
- implement proper error handling without exposing system details
- avoid using dynamic SQL within stored procedures

## Transaction Management
- explicitly begin and commit transactions
- use appropriate isolation levels based on requirements
- avoid long-running transactions that lock tables
- use batch processing for large data operations
- include SET NOCOUNT ON for stored procedures that modify data

© github · MIT · github/awesome-copilot

Похожие правила IDE

Все правила IDE по теме «Данные и базы» →

Из того же набора928

Весь набор →
taming-copilot Ограничивает избыточные правки и запрещает GitHub Copilot менять чужой код без команды. Пригодится, если ассистент переписывает файлы целиком или добавляет лишний код. ★ 40 418звёзд репо tailwind-v4-vite Правило помогает подключить Tailwind CSS v4 к проекту на Vite через официальный плагин. Пригодится и для новой установки, и при переходе с v3. ★ 40 418звёзд репо swift-mcp-server Правило задаёт Copilot шаблоны для сборки MCP-серверов на Swift через официальный SDK: инструменты, ресурсы, промпты и транспорты. ★ 40 418звёзд репо svelte Направляет GitHub Copilot на стандарты Svelte 5 и SvelteKit 2: руны вместо старых сторов, типизация компонентов и безопасная работа с SSR. ★ 40 418звёзд репо springboot Правило задаёт Copilot стиль кода для Spring Boot: внедрение зависимостей, конфигурация, логирование и проверка сборки. ★ 40 418звёзд репо springboot-4-migration Инструкция для GitHub Copilot по переводу проектов со Spring Boot 3.x на 4.0. Помогает обновить зависимости в Gradle Kotlin DSL, каталоги версий и имена стартеров. ★ 40 418звёзд репо spec-driven-workflow-v1 Правило ведёт разработку от формулировки требований к проектированию, реализации и проверке. Пригодится, когда нужно фиксировать решения и ход работы в отдельных файлах. ★ 40 418звёзд репо shell Правило, которое заставляет GitHub Copilot писать чистые и безопасные shell-скрипты. Применяется к файлам *.sh автоматически. ★ 40 418звёзд репо

Спонсоры проекта

Компании, которые помогают держать аналитику открытой