ErikEJ
服务介绍
SQL 项目静态分析规则集
概述
本库包含超过120条数据库代码分析规则,这些规则在构建时检查SQL最佳实践。
这些规则可以作为NuGet包添加到基于MSBuild.Sdk.SqlProj或Microsoft.Build.Sql的现代SQL数据库项目中。
您还可以下载并手动将这些规则与Visual Studio和“经典”SQL数据库项目一起使用,如我的博客文章所述。
有关我们目前实现的所有规则的完整列表,请参见这里。
此分支还包含一组额外的规则
TSQL Smells,这些规则是从TSQL-Smells分支出来的。
使用方法
最新版本可在NuGet上获取
sh
dotnet add package ErikEJ.DacFX.SqlServer.Rules
sh
dotnet add package ErikEJ.DacFX.TSQLSmellSCA
您可以在此readme文件中了解更多关于使用和自定义规则的信息。
命令行工具 - T-SQL 分析器 CLI
此仓库还包含一个.NET命令行工具,该工具使用这些规则集。更多详情请参阅专门的readme文件。
解决方案组织
.github - GitHub Actions
docs - 从规则检查生成的markdown文件,通过DocsGenerator单元测试生成
Solution Items - 与构建等相关的文件
src
SqlServer.Rules- 包含从SqlCodeAnalysisRule派生的规则TSQLSmellSCA- 一组额外的规则TSQL Smells,这些规则是从TSQL-Smells分支出来的
test
SqlServer.Rules.Tests- 一些用于演示规则单元测试的测试TSQLSmellsSSDTTest- 对部分TSQL Smells规则的单元测试TestHelpers- 共享的测试基类
tools
SqlAnalyzerCli- 一个命令行工具,用于对SQL项目运行规则ErikEJ.DacFX.TSQLAnalyzer- 用于对SQL脚本运行规则并报告结果的库和NuGet包。由SqlAnalyzerCli使用SqlServer.Rules.Generator- 一个快速控制台应用程序,用于报告SQL项目中的所有规则。SqlServer.Rules.Report- 用于评估规则并将结果序列化的库。
sqlprojects
AW- 用于规则验证的AdventureWorks模式SQL项目TestDatabase- 一个带有某些规则违规的小型SQL数据库项目TSQLSmellsTest- 一个带有某些规则违规的SQL数据库项目