AgentSkillsCN

sqlserver-design

SQL Server 数据库架构设计与查询优化

SKILL.md
--- frontmatter
name: sqlserver-design
description: SQL Server schema design and query optimization

SQL Server Design

Efficient schema design and query optimization.


Naming Conventions

ElementConventionExample
TablePascalCase, pluralUsers, Orders
ColumnPascalCaseFirstName
PKIdId
FK{Table}IdUserId
IndexIX_{Table}_{Column}IX_Users_Email

Standard Columns

sql
CREATE TABLE Users (
    Id INT IDENTITY(1,1) PRIMARY KEY,
    -- Business columns
    Email NVARCHAR(255) NOT NULL,
    Name NVARCHAR(100) NOT NULL,
    -- Audit columns
    CreatedAt DATETIME2 DEFAULT GETUTCDATE(),
    UpdatedAt DATETIME2 NULL,
    IsDeleted BIT DEFAULT 0
);

Relationships

sql
-- One-to-Many
ALTER TABLE Orders
ADD CONSTRAINT FK_Orders_Users
FOREIGN KEY (UserId) REFERENCES Users(Id);

-- Many-to-Many
CREATE TABLE UserRoles (
    UserId INT,
    RoleId INT,
    PRIMARY KEY (UserId, RoleId)
);

Indexing

ScenarioIndex Type
Primary keyClustered (auto)
Foreign keyNon-clustered
Search columnNon-clustered
Composite searchComposite
sql
CREATE INDEX IX_Users_Email ON Users(Email);
CREATE INDEX IX_Orders_UserId ON Orders(UserId);

Query Patterns

sql
-- Parameterized (safe)
SELECT * FROM Users WHERE Email = @Email

-- Pagination
SELECT * FROM Users
ORDER BY CreatedAt DESC
OFFSET @Skip ROWS
FETCH NEXT @Take ROWS ONLY

DO / DON'T

✅ Do❌ Don't
Parameterized queriesString concatenation
Index foreign keysSkip FK indexes
UTC timestampsLocal time
Soft deleteHard delete (usually)