一个包含超过120条数据库代码分析规则的SQL最佳实践库,在构建时进行检查。
这些规则可以作为NuGet包添加到基于MSBuild.Sdk.SqlProj或Microsoft.Build.Sql的现代SQL数据库项目中。
您也可以下载并手动在Visual Studio和“经典”的SQL数据库项目中使用这些规则,具体方法参见我的博客文章。
有关我们已实现的所有当前规则的完整列表,请参阅此处。
此分叉还包含从TSQL-Smells分叉而来的额外规则集
TSQL Smells。
最新版本可在NuGet上获取
dotnet add package ErikEJ.DacFX.SqlServer.Rules
dotnet add package ErikEJ.DacFX.TSQLSmellSCA
关于如何使用和自定义规则的更多信息,请参阅此处的readme
此仓库还包括一个使用规则集的.NET命令行工具。
您可以使用它来分析SQL脚本或SQL数据库项目,并以多种格式输出结果,包括XML和JSON。
您还可以将该工具作为MCP服务器与GitHub Copilot配合使用,允许您在使用GitHub Copilot Chat时获得SQL代码反馈。
T-SQL 分析器 MCP服务器支持跨多个开发环境的快速安装。请选择以下客户端之一进行简化设置:
| 客户端 | 一键安装 | MCP指南 |
|---|---|---|
| VS Code | VS Code MCP官方指南 | |
| Visual Studio | Visual Studio MCP官方指南 |
更多内容请参阅专用的readme文件
此仓库还包括一个使用规则集的Visual Studio扩展。
您可以在Visual Studio中实时分析SQL数据库项目,并在错误列表窗口中查看结果。
从Visual Studio Marketplace下载扩展, 或获取持续集成构建
更多内容请参阅专用的readme文件
.github - GitHub 动作
docs - 由DocsGenerator单元测试生成的markdown文件
Solution Items - 与构建等相关文件
src
SqlServer.Rules - 存放从SqlCodeAnalysisRule派生的规则TSQLSmellSCA - 从TSQL-Smells分叉而来的额外规则集 TSQL Smellstest
SqlServer.Rules.Tests - 展示规则单元测试的一些测试TSQLSmellsSSDTTest - 对一些 TSQL Smells 规则的单元测试TestHelpers - 共享的测试基类tools
SqlAnalyzerCli - 用于对SQL项目运行规则的命令行工具SqlAnalyzerVsix - 用于对SQL项目运行规则的Visual Studio扩展ErikEJ.DacFX.TSQLAnalyzer - 运行SQL脚本规则并报告结果的库和NuGet包。被SqlAnalyzerCli使用SqlServer.Rules.Generator - 快速控制台应用,用于报告SQL项目中的所有规则。SqlServer.Rules.Report - 评估规则并序列化结果的库。sqlprojects
AW - AdventureWorks模式SQL项目,用于规则验证TestDatabase - 包含一些规则违规的小型SQL数据库项目TSQLSmellsTest - 包含一些规则违规的SQL数据库项目