用途
sqlserver-expert 是一个专注于 Microsoft SQL Server 开发与数据库管理的专家技能。根据其描述,它适用于编写 T-SQL 查询、优化数据库性能、设计数据库架构以及进行相关配置等场景。
主要能力
该技能围绕 SQL Server 的日常开发与管理任务,提供了多个方面的示例与参考。
高级 T-SQL
- CTE(公用表表达式):示例使用 WITH 子句配合 ROW_NUMBER() 窗口函数,按部门分区并按入职日期排序,筛选出每组的第一行。
- 窗口函数:示例展示 SUM() OVER 计算累计合计、LAG() OVER 获取上一行金额、AVG() OVER 按客户分区计算平均值。
- MERGE 语句:示例演示如何根据源表与目标表的匹配情况执行更新、插入和删除操作。
Node.js 集成(mssql)
- 连接池:示例通过 mssql 包配置连接参数(用户、密码、服务器、数据库),并设置 encrypt、trustServerCertificate、enableArithAbort 等选项,以及连接池的 min、max、idleTimeoutMillis。示例还提供了获取连接池的异步函数。
- 参数化查询:示例使用 request.input() 绑定参数,并在查询中使用 @userId、@status 占位符,避免字符串拼接。
常用查询
技能中提供了若干用于查看数据库元数据的查询示例:
- 列出表:查询 INFORMATION_SCHEMA.TABLES,返回架构、表名和表类型。
- 查看表结构:查询 INFORMATION_SCHEMA.COLUMNS,返回列名、数据类型、最大长度、是否可空、默认值,并按序号排序。
- 查看索引:通过 sys.indexes、sys.index_columns、sys.columns 联合查询,返回索引名称、类型、是否唯一、是否主键以及包含的列(使用 STRING_AGG 聚合)。
- 查看外键:通过 sys.foreign_keys、sys.foreign_key_columns、sys.tables、sys.columns 联合查询,返回外键名称、父表、父列、引用表、引用列。
使用方式
该技能以参考文档的形式提供代码示例和最佳实践,供开发人员或 DBA 在编写 T-SQL、集成 Node.js 应用或排查数据库结构时查阅。具体调用方式(如是否作为 MCP 工具、如何安装或触发)在提供的资料中暂未说明。
适用场景
- 编写复杂的 T-SQL 查询,尤其是需要 CTE、窗口函数或 MERGE 的场景。
- 在 Node.js 应用中连接和操作 SQL Server,需要连接池或参数化查询的参考。
- 需要快速查询数据库元数据(表、列、索引、外键)时。
- 遵循 SQL Server 安全与性能最佳实践进行开发。
限制
- 资料中未提供该技能的安装方式、运行环境要求、收费模式或平台支持信息。
- 示例代码基于 Node.js 的 mssql 包,其他语言或驱动未涉及。
- 最佳实践部分仅列出原则,未展开具体实现细节。
- 该技能不包含自动化执行或部署功能,仅为知识性参考。