Skip to main content
Glama

T-SQL Analyzer

by ErikEJ

Static Analysis Rule-sets for SQL Projects

build status

Overview

A library of SQL best practices implemented as more than 120 database code analysis rules checked at build.

The rules can be added as NuGet packages to modern SQL Database projects based on either MSBuild.Sdk.SqlProj or Microsoft.Build.Sql.

You can also download and manually use the rules with Visual Studio and "classic" SQL Database projects, as described in my blog post here.

For a complete list of the current rules we have implemented see here.

This fork also contains an additional set of rules TSQL Smells forked from TSQL-Smells

Usage

The latest version is available on NuGet

dotnet add package ErikEJ.DacFX.SqlServer.Rules
dotnet add package ErikEJ.DacFX.TSQLSmellSCA

You can read more about using and customizing the rules in the readme here

Command line tool - T-SQL Analyzer CLI

This repository also contains a .NET commmand line tool, that uses the rule sets. Read more in the dedicated readme file

Solution Organization

.github - GitHub actions

docs - markdown files generated from rule inspection with the DocsGenerator unit test

Solution Items - files relating to build etc.

src

  • SqlServer.Rules - This holds the rules derived from SqlCodeAnalysisRule
  • TSQLSmellSCA - an additional set of rules TSQL Smells forked from TSQL-Smells

test

  • SqlServer.Rules.Tests - a few test to demonstrate unit testing of rules
  • TSQLSmellsSSDTTest - unit tests of some of the TSQL Smells rules
  • TestHelpers - shared test base classes

tools

  • SqlAnalyzerCli - a command line tool to run rules against a SQL Project
  • ErikEJ.DacFX.TSQLAnalyzer - library and NuGet package for running rules against SQL scripts and reporting results. Used by SqlAnalyzerCli
  • SqlServer.Rules.Generator - a quick console app to report on all rules in a SQL Project.
  • SqlServer.Rules.Report - Library for evaluating a rule and serializing the result.

sqlprojects

  • AW - AdventureWorks schema SQL Project for rules validation
  • TestDatabase - a small SQL Database Project with some rule violations
  • TSQLSmellsTest - a SQL Database Project with some rule violations
-
security - not tested
A
license - permissive license
-
quality - not tested

remote-capable server

The server can be hosted and run remotely because it primarily relies on remote services or has no dependency on the local environment.

T-SQL Analyzer

  1. Overview
    1. Usage
      1. Command line tool - T-SQL Analyzer CLI
        1. Solution Organization

          Related MCP Servers

          View all related MCP servers

          MCP directory API

          We provide all the information about MCP servers via our MCP API.

          curl -X GET 'https://glama.ai/api/mcp/v1/servers/ErikEJ/SqlServer.Rules'

          If you have feedback or need assistance with the MCP directory API, please join our Discord server