Add SQL development guidelines and best practices to instructions (#49)
* Add SQL development guidelines and best practices to instructions * Update instructions/sql-sp-generation.instructions.md Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com> --------- Co-authored-by: Aaron Powell <me@aaron-powell.com> Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
This commit is contained in:
parent
b46a12821e
commit
a4546ff4d2
@ -55,6 +55,7 @@ Team and project-specific instructions to enhance GitHub Copilot's behavior for
|
|||||||
| [Ruby on Rails](instructions/ruby-on-rails.instructions.md) | Ruby on Rails coding conventions and guidelines | [](https://vscode.dev/redirect?url=vscode%3Achat-instructions%2Finstall%3Furl%3Dhttps%3A%2F%2Fraw.githubusercontent.com%2Fgithub%2Fawesome-copilot%2Fmain%2Finstructions%2Fruby-on-rails.instructions.md) [](https://insiders.vscode.dev/redirect?url=vscode-insiders%3Achat-instructions%2Finstall%3Furl%3Dhttps%3A%2F%2Fraw.githubusercontent.com%2Fgithub%2Fawesome-copilot%2Fmain%2Finstructions%2Fruby-on-rails.instructions.md) |
|
| [Ruby on Rails](instructions/ruby-on-rails.instructions.md) | Ruby on Rails coding conventions and guidelines | [](https://vscode.dev/redirect?url=vscode%3Achat-instructions%2Finstall%3Furl%3Dhttps%3A%2F%2Fraw.githubusercontent.com%2Fgithub%2Fawesome-copilot%2Fmain%2Finstructions%2Fruby-on-rails.instructions.md) [](https://insiders.vscode.dev/redirect?url=vscode-insiders%3Achat-instructions%2Finstall%3Furl%3Dhttps%3A%2F%2Fraw.githubusercontent.com%2Fgithub%2Fawesome-copilot%2Fmain%2Finstructions%2Fruby-on-rails.instructions.md) |
|
||||||
| [Secure Coding and OWASP Guidelines](instructions/security-and-owasp.instructions.md) | Comprehensive secure coding instructions for all languages and frameworks, based on OWASP Top 10 and industry best practices. | [](https://vscode.dev/redirect?url=vscode%3Achat-instructions%2Finstall%3Furl%3Dhttps%3A%2F%2Fraw.githubusercontent.com%2Fgithub%2Fawesome-copilot%2Fmain%2Finstructions%2Fsecurity-and-owasp.instructions.md) [](https://insiders.vscode.dev/redirect?url=vscode-insiders%3Achat-instructions%2Finstall%3Furl%3Dhttps%3A%2F%2Fraw.githubusercontent.com%2Fgithub%2Fawesome-copilot%2Fmain%2Finstructions%2Fsecurity-and-owasp.instructions.md) |
|
| [Secure Coding and OWASP Guidelines](instructions/security-and-owasp.instructions.md) | Comprehensive secure coding instructions for all languages and frameworks, based on OWASP Top 10 and industry best practices. | [](https://vscode.dev/redirect?url=vscode%3Achat-instructions%2Finstall%3Furl%3Dhttps%3A%2F%2Fraw.githubusercontent.com%2Fgithub%2Fawesome-copilot%2Fmain%2Finstructions%2Fsecurity-and-owasp.instructions.md) [](https://insiders.vscode.dev/redirect?url=vscode-insiders%3Achat-instructions%2Finstall%3Furl%3Dhttps%3A%2F%2Fraw.githubusercontent.com%2Fgithub%2Fawesome-copilot%2Fmain%2Finstructions%2Fsecurity-and-owasp.instructions.md) |
|
||||||
| [Spring Boot Development](instructions/springboot.instructions.md) | Guidelines for building Spring Boot base applications | [](https://vscode.dev/redirect?url=vscode%3Achat-instructions%2Finstall%3Furl%3Dhttps%3A%2F%2Fraw.githubusercontent.com%2Fgithub%2Fawesome-copilot%2Fmain%2Finstructions%2Fspringboot.instructions.md) [](https://insiders.vscode.dev/redirect?url=vscode-insiders%3Achat-instructions%2Finstall%3Furl%3Dhttps%3A%2F%2Fraw.githubusercontent.com%2Fgithub%2Fawesome-copilot%2Fmain%2Finstructions%2Fspringboot.instructions.md) |
|
| [Spring Boot Development](instructions/springboot.instructions.md) | Guidelines for building Spring Boot base applications | [](https://vscode.dev/redirect?url=vscode%3Achat-instructions%2Finstall%3Furl%3Dhttps%3A%2F%2Fraw.githubusercontent.com%2Fgithub%2Fawesome-copilot%2Fmain%2Finstructions%2Fspringboot.instructions.md) [](https://insiders.vscode.dev/redirect?url=vscode-insiders%3Achat-instructions%2Finstall%3Furl%3Dhttps%3A%2F%2Fraw.githubusercontent.com%2Fgithub%2Fawesome-copilot%2Fmain%2Finstructions%2Fspringboot.instructions.md) |
|
||||||
|
| [SQL Development](instructions/sql-sp-generation.instructions.md) | Guidelines for generating SQL statements and stored procedures | [](https://vscode.dev/redirect?url=vscode%3Achat-instructions%2Finstall%3Furl%3Dhttps%3A%2F%2Fraw.githubusercontent.com%2Fgithub%2Fawesome-copilot%2Fmain%2Finstructions%2Fsql-sp-generation.instructions.md) [](https://insiders.vscode.dev/redirect?url=vscode-insiders%3Achat-instructions%2Finstall%3Furl%3Dhttps%3A%2F%2Fraw.githubusercontent.com%2Fgithub%2Fawesome-copilot%2Fmain%2Finstructions%2Fsql-sp-generation.instructions.md) |
|
||||||
| [Taming Copilot](instructions/taming-copilot.instructions.md) | Prevent Copilot from wreaking havoc across your codebase, keeping it under control. | [](https://vscode.dev/redirect?url=vscode%3Achat-instructions%2Finstall%3Furl%3Dhttps%3A%2F%2Fraw.githubusercontent.com%2Fgithub%2Fawesome-copilot%2Fmain%2Finstructions%2Ftaming-copilot.instructions.md) [](https://insiders.vscode.dev/redirect?url=vscode-insiders%3Achat-instructions%2Finstall%3Furl%3Dhttps%3A%2F%2Fraw.githubusercontent.com%2Fgithub%2Fawesome-copilot%2Fmain%2Finstructions%2Ftaming-copilot.instructions.md) |
|
| [Taming Copilot](instructions/taming-copilot.instructions.md) | Prevent Copilot from wreaking havoc across your codebase, keeping it under control. | [](https://vscode.dev/redirect?url=vscode%3Achat-instructions%2Finstall%3Furl%3Dhttps%3A%2F%2Fraw.githubusercontent.com%2Fgithub%2Fawesome-copilot%2Fmain%2Finstructions%2Ftaming-copilot.instructions.md) [](https://insiders.vscode.dev/redirect?url=vscode-insiders%3Achat-instructions%2Finstall%3Furl%3Dhttps%3A%2F%2Fraw.githubusercontent.com%2Fgithub%2Fawesome-copilot%2Fmain%2Finstructions%2Ftaming-copilot.instructions.md) |
|
||||||
| [TanStack Start with Shadcn/ui Development Guide](instructions/tanstack-start-shadcn-tailwind.md) | Guidelines for building TanStack Start applications | [](https://vscode.dev/redirect?url=vscode%3Achat-instructions%2Finstall%3Furl%3Dhttps%3A%2F%2Fraw.githubusercontent.com%2Fgithub%2Fawesome-copilot%2Fmain%2Finstructions%2Ftanstack-start-shadcn-tailwind.md) [](https://insiders.vscode.dev/redirect?url=vscode-insiders%3Achat-instructions%2Finstall%3Furl%3Dhttps%3A%2F%2Fraw.githubusercontent.com%2Fgithub%2Fawesome-copilot%2Fmain%2Finstructions%2Ftanstack-start-shadcn-tailwind.md) |
|
| [TanStack Start with Shadcn/ui Development Guide](instructions/tanstack-start-shadcn-tailwind.md) | Guidelines for building TanStack Start applications | [](https://vscode.dev/redirect?url=vscode%3Achat-instructions%2Finstall%3Furl%3Dhttps%3A%2F%2Fraw.githubusercontent.com%2Fgithub%2Fawesome-copilot%2Fmain%2Finstructions%2Ftanstack-start-shadcn-tailwind.md) [](https://insiders.vscode.dev/redirect?url=vscode-insiders%3Achat-instructions%2Finstall%3Furl%3Dhttps%3A%2F%2Fraw.githubusercontent.com%2Fgithub%2Fawesome-copilot%2Fmain%2Finstructions%2Ftanstack-start-shadcn-tailwind.md) |
|
||||||
|
|
||||||
|
|||||||
74
instructions/sql-sp-generation.instructions.md
Normal file
74
instructions/sql-sp-generation.instructions.md
Normal file
@ -0,0 +1,74 @@
|
|||||||
|
---
|
||||||
|
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 'sp_'
|
||||||
|
- use PascalCase for stored procedure names
|
||||||
|
- use descriptive names that indicate purpose (e.g., sp_GetCustomerOrders)
|
||||||
|
- include plural noun when returning multiple records (e.g., sp_GetProducts)
|
||||||
|
- include singular noun when returning single record (e.g., sp_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
|
||||||
Loading…
x
Reference in New Issue
Block a user