Przejdź do treści
Biblioteka skilli
Programowanie · Budowanie i kod

sqlserver

/sqlserver

Pomaga w programowaniu SQL Server: T-SQL, SSIS i SSRS, administracji bazą oraz optymalizacji wydajności.

Repozytorium
hello-skill ↗
Licencja
MIT
Ostatnia zmiana repozytorium
02.07.2026

Ocena i bezpieczeństwo

90/ 100Klasa: dobry
Format25 / 25
Frontmatter z nazwą i opisem, poprawna nazwa, opis do 1024 znaków, nazwa zgodna z folderem.
Odkrywalność25 / 25
Opis mówi, kiedy użyć skilla, ma sensowną długość i jest w 3. osobie.
Treść25 / 35
Co najmniej 150 słów i do 500 linii, nagłówki, listy kroków, przykłady albo kod.
Higiena15 / 15
Bez zaślepek typu TODO, bez ścieżek Windows, z licencją.
Ryzykobrak sygnałów w skanie
Pliki w paczce
1
Skrypty
0
Komentarze HTML
0
Adresy URL w SKILL.md
0
Przestarzałość

Brak sygnałów. Repozytorium zmienione 02.07.2026, bez odwołań do wycofanych modeli i API.

Licencja

MIT, otwarta: można używać i zmieniać, z zachowaniem informacji o autorze.

Co robi i kiedy

Pomaga w programowaniu SQL Server: T-SQL, SSIS i SSRS, administracji bazą oraz optymalizacji wydajności.

Oryginalny opis (EN)

SQL Server开发专家助手。当用户需要进行SQL Server数据库开发、T-SQL编程、SSIS/SSRS、数据库管理或SQL Server性能优化时调用。

Jak działa

  1. 技术栈强制约束
  2. 命名规范
  3. 表设计规范
  4. T-SQL 编写规范
  5. 索引规范
  6. 注释规范
  7. 代码质量强制要求
  8. 性能优化
  9. 安全规范
  10. 备份与恢复
Sekcje z nagłówków SKILL.md, w oryginale · 122 linii, 308 słów
Podgląd SKILL.md
---
name: "sqlserver"
description: "SQL Server开发专家助手。当用户需要进行SQL Server数据库开发、T-SQL编程、SSIS/SSRS、数据库管理或SQL Server性能优化时调用。"
---

# SQL Server 开发技能

你是一位资深 SQL Server 开发工程师。在协助 SQL Server 项目时,请遵循以下规范。

## 技术栈强制约束

- 使用 SQL Server 2019+ 版本
- 使用 T-SQL 作为开发语言
- 排序规则:`Chinese_PRC_CI_AS` 或 `Latin1_General_CI_AS`
- 生产环境必须启用完整恢复模式 + 定期备份

## 命名规范

- 数据库名:小写 + 下划线分隔(`user_center`、`order_system`)
- 表名:小写 + 下划线分隔,使用复数形式(`users`、`order_items`)
- 字段名:小写 + 下划线分隔(`user_name`、`create_time`)
- 索引名:
  - 主键:`PK_{表名}`(`PK_users`)
  - 唯一索引:`UK_{表名}_{字段名}`(`UK_users_email`)
  - 普通索引:`IX_{表名}_{字段名}`(`IX_users_status`)
  - 聚集索引:`CL_{表名}`
- 存储过程:`usp_{功能描述}`(`usp_get_user_by_id`)
- 函数:`fn_{功能描述}`(`fn_format_date`)
- 视图:`vw_{功能描述}`(`vw_user_orders`)
- 触发器:`trg_{表名}_{操作}`(`trg_users_update`)
- 命名语义化,禁止拼音、无意义缩写

## 表设计规范

- 每个表必须包含以下字段:
  - `id`:BIGINT IDENTITY(1,1),主键
  - `create_time`:DATETIME2,默认 `GETDATE()`
  - `update_time`:DATETIME2,默认 `GETDATE()`
  - `is_deleted`:BIT,默认 0
- 字段类型选择:
  - 金额:`DECIMAL(p, s)`,禁止使用 FLOAT
  - 日期时间:`DATETIME2`,禁止使用 `DATETIME`
  - 日期:`DATE`
  - 字符串:`NVARCHAR(n)` 支持中文
  - 布尔:`BIT`
  - 唯一标识:`UNIQUEIDENTIFIER`(GUID)
- 每个表必须有主键
- 每个表和字段必须有中文扩展属性说明

## T-SQL 编写规范

- 关键字大写(`SELECT`、`FROM`、`WHERE`)
- 变量名:小写 + 下划线分隔(`@user_name`、`@order_count`)
- 参数名:小写 + 下划线分隔(`@p_user_id`)
- 禁止 `SELECT *`,必须明确指定字段
- 使用 `SET NOCOUNT ON` 减少网络流量
- 使用 `TRY...CATCH` 处理错误
- 分页使用 `OFFSET...FETCH`,禁止 `ROW_NUMBER()` 深度分页
- 临时表使用 `#` 前缀(`#temp_users`),表变量使用 `@` 前缀

## 索引规范

- 单表索引数不超过 8 个
- 聚集索引选择:
  - 优先使用自增 ID
  - 禁止在 GUID 上建聚集索引(导致页分裂)
- 非聚集索引:
  - 高频查询条件字段
  - 外键字段
  - 排序字段
- 使用 `INCLUDE` 包含查询需要的非键列
- 使用 `EXEC sp_helpindex` 查看索引信息
- 使用 `SET STATISTICS IO ON` + `SET STATISTICS TIME ON` 分析查询

## 注释规范

- 每个存储过程/函数顶部必须有中文注释说明用途
- 参数必须注释说明含义
- 复杂逻辑必须添加中文行内注释
- 表和字段必须使用扩展属性添加中文说明
- 禁止无意义注释

## 代码质量强制要求

- 禁止 `SELECT *`
- 更新/删除必须带 WHERE 条件
- 禁止在 WHERE 条件中对字段使用函数
- 大批量操作分批执行(`TOP n`)
- 禁止物理删除,使用逻辑删除
- 存储过程必须使用 `SET NOCOUNT ON`
- 必须使用 `TRY...CATCH` 处理错误
- 禁止在循环中执行 SQL

## 性能优化

- 使用执行计划分析查询(`SET SHOWPLAN_TEXT ON`)
- 关注:Table Scan、Clustered Index Scan、Key Lookup
- 优化器提示谨慎使用
- 统计信息自动更新保持开启
- 临时表 vs 表变量:大数据量使用临时表(支持索引)
- 使用 `WITH(NOLOCK)` 减少读锁(允许脏读场景)
- 分区表:大表按时间或范围分区

## 安全规范

- 最小权限原则
- 参数化查询防止 SQL 注入
- 禁止使用 `sa` 账号运行应用
- 启用审计日志
- 敏感数据加密(Always Encrypted)

## 备份与恢复

- 完整备份:每日
- 差异备份:每 6 小时
- 事务日志备份:每 15 分钟
- 使用 `DBCC CHECKDB` 定期检查数据库完整性

## 最佳实践

- 使用 CTE 提高可读性
- 使用窗口函数替代自连接
- 使用 `MERGE` 实现插入或更新
- 使用 `OUTPUT` 子句获取操作结果
- 使用 `SNAPSHOT` 隔离级别减少锁争用

Wersje

RepozytoriumWynikLicencja
Ta strona · dkbnull/hello-skill90MIT
claude-dev-suite/claude-dev-suite100MIT
G1Joshi/Agent-Skills100MIT

Migawka bazy z 28.10.2026 · wersja paczki dfb85253b2e4 (skrót SHA-256 całej paczki)

Pobrania w ostatnich 30 dniach: 0 · ranking

Zgłoś problem z tym skillem: szkodliwa treść, błędny opis albo prośba autora o usunięcie.

Podobne skille

  • 100sqlserver-expert
    Pomaga w T-SQL: pisaniu zapytań, optymalizacji, projektowaniu schematów i integracji SQL Server z Node.js.
  • 100capture-sqlserver-create
    Tworzy capture SQL Server CDC przez flowctl dla strumieniowania w czasie rzeczywistym z SQL Server, Azure SQL, Amazon RDS SQL Server i Google Cloud SQL.
  • 86oracle
    Pomaga w tworzeniu baz Oracle: PL/SQL, klastry RAC, partycjonowanie tabel i optymalizacja wydajności.
  • 100tsql
    Obejmuje proceduralny język T-SQL Microsoft SQL Server: procedury składowane, funkcje, wyzwalacze, obsługę błędów i cechy specyficzne dla SQL Server.
  • 100aidp-sqlserver
    Odczytuje lub zapisuje Microsoft SQL Server z notatnika AIDP przez format Spark aidataplatform, z hostem, portem, bazą, użytkownikiem i hasłem.
  • 100byted-sqlserver-instance-management
    Obsługuje RDS SQL Server na Volcengine: zarządzanie instancjami, bazami i kontami oraz zadania operacyjne przez skrypt call_rds_mssql.py.

Uwagi i zgłoszenia

Wiadomość trafi do Bartosza Sokolińskiego. Adres e-mail jest potrzebny tylko do odpowiedzi. Szczegóły w polityce prywatności.