sql 代码创建
- 作者仓库星标 0
- 作者仓库 skills-registry
SQL Server - Quick Reference
Deep Knowledge: Use
mcp__documentation__fetch_docswith technology:aspnet-corefor EF Core + SQL Server patterns.
Common T-SQL Patterns
-- Table creation
CREATE TABLE Users (
Id INT IDENTITY(1,1) PRIMARY KEY,
Name NVARCHAR(100) NOT NULL,
Email NVARCHAR(255) NOT NULL UNIQUE,
CreatedAt DATETIME2 DEFAULT GETUTCDATE(),
UpdatedAt DATETIME2 NULL,
IsActive BIT DEFAULT 1
);
-- Pagination (SQL Server 2012+)
SELECT * FROM Users
ORDER BY Name
OFFSET @Skip ROWS
FETCH NEXT @Take ROWS ONLY;
-- MERGE (upsert)
MERGE INTO Users AS target
USING (SELECT @Email AS Email, @Name AS Name) AS source
ON target.Email = source.Email
WHEN MATCHED THEN
UPDATE SET Name = source.Name, UpdatedAt = GETUTCDATE()
WHEN NOT MATCHED THEN
INSERT (Name, Email) VALUES (source.Name, source.Email);
-- CTE (Common Table Expression)
WITH ActiveUsers AS (
SELECT Id, Name, ROW_NUMBER() OVER (ORDER BY CreatedAt DESC) AS RowNum
FROM Users WHERE IsActive = 1
)
SELECT * FROM ActiveUsers WHERE RowNum BETWEEN 1 AND 10;
Indexes
-- Clustered (one per table, usually PK)
CREATE CLUSTERED INDEX IX_Users_Id ON Users(Id);
-- Non-clustered
CREATE NONCLUSTERED INDEX IX_Users_Email ON Users(Email);
-- Covering index (includes extra columns)
CREATE NONCLUSTERED INDEX IX_Users_Email_Include
ON Users(Email) INCLUDE (Name, CreatedAt);
-- Filtered index
CREATE NONCLUSTERED INDEX IX_Users_Active
ON Users(Email) WHERE IsActive = 1;
-- Check missing indexes
SELECT * FROM sys.dm_db_missing_index_details;
Stored Procedures
CREATE PROCEDURE sp_GetUsersByStatus
@IsActive BIT,
@PageSize INT = 10,
@PageNumber INT = 1
AS
BEGIN
SET NOCOUNT ON;
SELECT Id, Name, Email, CreatedAt
FROM Users
WHERE IsActive = @IsActive
ORDER BY Name
OFFSET (@PageNumber - 1) * @PageSize ROWS
FETCH NEXT @PageSize ROWS ONLY;
END;
Performance Tips
| Tip | Why |
|---|---|
Use NVARCHAR over VARCHAR for Unicode |
Avoid encoding issues |
| Add indexes on WHERE/JOIN columns | Speed up queries |
Use SET NOCOUNT ON in procedures |
Reduce network traffic |
Avoid SELECT * |
Only fetch needed columns |
| Use parameterized queries | Prevent SQL injection, plan reuse |
Use DATETIME2 over DATETIME |
Better precision, smaller storage |
Query Performance Analysis
-- Execution plan
SET STATISTICS IO ON;
SET STATISTICS TIME ON;
-- Run your query
SET STATISTICS IO OFF;
SET STATISTICS TIME OFF;
-- Expensive queries
SELECT TOP 10
qs.total_elapsed_time / qs.execution_count AS avg_elapsed,
qs.execution_count,
SUBSTRING(qt.text, 1, 200) AS query_text
FROM sys.dm_exec_query_stats qs
CROSS APPLY sys.dm_exec_sql_text(qs.sql_handle) qt
ORDER BY avg_elapsed DESC;
Anti-Patterns
| Anti-Pattern | Why It's Bad | Correct Approach |
|---|---|---|
SELECT * |
Wastes I/O, breaks on schema change | List specific columns |
| Cursors for row-by-row | Very slow | Use set-based operations |
| No indexes on FKs | Slow JOINs | Add non-clustered indexes |
NOLOCK everywhere |
Dirty reads | Use proper isolation levels |
| String concatenation in SQL | SQL injection | Use parameterized queries |
Quick Troubleshooting
| Issue | Likely Cause | Solution |
|---|---|---|
| Slow query | Missing index | Check execution plan |
| Deadlocks | Conflicting locks | Check sys.dm_tran_locks |
| Timeout | Long-running query | Optimize or increase timeout |
| Truncation error | Column too small | Check NVARCHAR length |
<!-- tomevault:4.0:skill_md:2026-05-22 -->Source: claude-dev-suite/claude-dev-suite — distributed by TomeVault.
- 流狐分类
- 通用
- 作者声明 Agent
- 未找到明确声明;不据此推断已兼容或已测试
- 静态检查
- 88 / 100 · 启发式扫描,不代表运行安全
- 作者 / 版本 / 许可
- @tomevault-io · 未声明 license
- 流狐 Token 估算
- 低消耗
- 流狐接入估算
- 需简单配置
- 是否需要外部 API Key
- 未发现要求
- 检测到的系统要求
- 未声明
- 底层运行要求
- 未声明
- 检测到的文件与系统行为
-
- 只读
- 允许写入 / 修改
- Shell 执行
- 检测到的网络行为
- 允许外网请求
- 安装命令数
- 无(仅作为资料)
档案由构建时根据 SKILL.md 与安装命令自动衍生,可能与作者实际意图存在差异。
需要注意: 未限定 allowed-tools,默认拥有全部工具权限。
作者没有在当前 SKILL.md 中定义固定输出样例。 Common T-SQL Patterns
Common T-SQL Patterns
Indexes
Indexes
Stored Procedures
Stored Procedures
Performance Tips
Tip · Why Use NVARCHAR over VARCHAR for Unicode · Avoid encoding issues Add indexes on WHERE/JOIN columns · Speed up queries
Query Performance Analysis
Query Performance Analysis
Anti-Patterns
Anti-Pattern · Why It's Bad · Correct Approach SELECT · Wastes I/O, breaks on schema change · List specific columns Cursors for row-by-row · Very slow · Use set-based operations
# SQL Server - Quick Reference
> **Deep Knowledge**: Use `mcp__documentation__fetch_docs` with technology: `aspnet-core` for EF Core + SQL Server patterns.
## Common T-SQL Patterns
```sql
-- Table creation
CREATE TABLE Users (
Id INT IDENTITY(1,1) PRIMARY KEY,
Name NVARCHAR(100) NOT NULL,
Email NVARCHAR(255) NOT NULL UNIQUE,
CreatedAt DATETIME2 DEFAULT GETUTCDATE(),
UpdatedAt DATETIME2 NULL,
IsActive BIT DEFAULT 1
);
-- Pagination (SQL Server 2012+)
SELECT * FROM Users
ORDER BY Name
OFFSET @Skip ROWS
FETCH NEXT @Take ROWS ONLY;
-- MERGE (upsert)
MERGE INTO Users AS target
USING (SELECT @Email AS Email, @Name AS Name) AS source
ON target.Email = source.Email
WHEN MATCHED THEN
UPDATE SET Name = source.Name, UpdatedAt = GETUTCDATE()
WHEN NOT MATCHED THEN
INSERT (Name, Email) VALUES (source.Name, source.Email);
-- CTE (Common Table Expression)
WITH ActiveUsers AS (
SELECT Id, Name, ROW_NUMBER() OVER (ORDER BY CreatedAt DESC) AS RowNum
FROM Users WHERE IsActive = 1
)
SELECT * FROM ActiveUsers WHERE RowNum BETWEEN 1 AND 10;
```
## Indexes
```sql
-- Clustered (one per table, usually PK)
CREATE CLUSTERED INDEX IX_Users_Id ON Users(Id);
-- Non-clustered
CREATE NONCLUSTERED INDEX IX_Users_Email ON Users(Email);
-- Covering index (includes extra columns)
CREATE NONCLUSTERED INDEX IX_Users_Email_Include
ON Users(Email) INCLUDE (Name, CreatedAt);
-- Filtered index
CREATE NONCLUSTERED INDEX IX_Users_Active
ON Users(Email) WHERE IsActive = 1;
-- Check missing indexes
SELECT * FROM sys.dm_db_missing_index_details;
```
## Stored Procedures
```sql
CREATE PROCEDURE sp_GetUsersByStatus
@IsActive BIT,
@PageSize INT = 10,
@PageNumber INT = 1
AS
BEGIN
SET NOCOUNT ON;
SELECT Id, Name, Email, CreatedAt
FROM Users
… 证据边界与执行链路
作者原文负责流程事实;流狐只索引当前章节、要点、文件与命令。
章节 -> Common T-SQL Patterns → Indexes → Stored Procedures → Performance Tips → Query Performance Analysis → Anti-Patterns
要点 -> Deep Knowledge · > Deep Knowledge: Use mcpdocumentationfetchdocs with technology: aspnet-core for EF Core + SQL Server patterns.
文件/命令 -> mcpdocumentationfetchdocs · aspnet-core · NVARCHAR · VARCHAR · SET NOCOUNT ON · SELECT · DATETIME2 · DATETIME
内容 SHA-256 -> e44cb689b7f7
原文结构
适用与边界
原文中的明确线索
mcpdocumentationfetchdocs、aspnet-core、NVARCHAR、VARCHAR、SET NOCOUNT ON、SELECT、DATETIME2、DATETIME