SuperAPI AI 工具集

sqlserver-schema

数据与分析

查看项目

更新于 10-16 06:09

技能介绍

用途

本技能用于 SQL Server 数据库架构的创建与修改、迁移脚本编写,以及应用 DDL(数据定义语言)最佳实践。

主要能力

CREATE TABLE 与数据类型指南

提供建表时的数据类型选择参考,示例包括:

  • 整数 ID:INT IDENTITY(约 21 亿行以内),超大表使用 BIGINT
  • 字符串:NVARCHAR(n) 用于 Unicode 文本(n ≤ 4000),VARCHAR(n) 用于纯 ASCII 文本,CHAR(n)/NCHAR(n) 用于定长字符串(如 ISO 代码)
  • 日期时间:DATETIME2(7) 优先于旧版 DATETIME;仅日期用 DATE,仅时间用 TIME(n)
  • 金额:DECIMAL(p,s) 或 MONEY,明确禁止使用 FLOAT(精度丢失)
  • 布尔:BIT
  • GUID:UNIQUEIDENTIFIER,默认值建议使用 NEWSEQUENTIALID() 以减少碎片
  • 大二进制:VARBINARY(MAX)
  • JSON/XML 文本:NVARCHAR(MAX),或使用原生 XML 类型

资料中给出 DATETIME 与 DATETIME2 的对比:DATETIME 为旧版,精度 3.33ms,范围 1753–9999;DATETIME2 为首选,精度 100ns,范围 0001–9999,符合 ANSI SQL。

ALTER TABLE

涵盖添加列(含两步添加 NOT NULL 列的方法)、添加约束、添加外键、添加非聚集索引、删除列、删除约束,以及使用 sp_rename 重命名列。

幂等迁移脚本

提供可安全重复运行的迁移模式,包括:仅在不存在时添加列、创建索引、添加约束、创建表,以及仅在存在时删除对象。

迁移编号模式

建议目录结构示例:

migrations/
├── V001__create_customers_table.sql
├── V002__add_region_column.sql
├── V003__create_orders_table.sql
├── V004__add_orders_fk_customers.sql

每个文件要求:以 V + 零填充编号 + __ + 描述为前缀;幂等(可安全重跑);仅包含前向变更(同一文件内不含回滚);在生产前于预发布数据库测试。

外键模式

包括级联删除、删除时置 NULL、无级联(最安全,需显式删除),以及批量加载时禁用外键、加载后重新启用。

计算列

包括持久化计算列(存储于磁盘、可建索引)和用于搜索规范化的计算列。

检查约束

包括值范围、枚举值、跨列约束和字符串格式(基础)约束。

使用方式

资料未提供具体的安装命令或调用方式,仅以 SQL 代码示例形式展示各项 DDL 模式。

适用场景

  • 创建和修改 SQL Server 数据库架构
  • 编写可重复运行的迁移脚本
  • 应用 DDL 最佳实践(数据类型选择、约束、外键、计算列)

限制

资料未说明该技能的运行环境、依赖版本、平台支持范围或收费情况,暂未提供。