SQLFluff vs TSQLLint
SQLFluff
sqlfluff.comTSQLLint
github.comSide by side
| Figure | SQLFluff | TSQLLint |
|---|---|---|
| Price from | Free | Free |
| Free plan | Yes | Yes |
| Free trial | — | — |
| Open source | — | — |
| Windows | Yes | Yes |
| macOS | Yes | Yes |
| Linux | Yes | Yes |
| API | Yes | — |
| Self-hosted | Yes | — |
| Plans published | 1 | 1 |
| Spec score · SQL Linters and Formatters | 8.0 (#10) | 7.4 (#19) |
| Auto-fix | SQLFluff can automatically fix many linting violations with a single command. | The command-line tool can fix problems it identifies as auto-fixable using the --fix or -x option. |
| Purpose | SQLFluff is an open source, dialect-flexible SQL linter designed with ELT applications in mind. | TSQLLint describes, identifies, and reports anti-patterns in TSQL scripts. |
| Security | SQLFluff does not execute SQL itself, but templating macros such as dbt’s run_query may execute arbitrary SQL; its Jinja templater uses Jinja2 SandboxedEnvironment to limit unsafe code execution. | The repository lists a security policy, but its security-policy page could not be opened during this research. |
| Support | The project lists documentation, GitHub, Slack, and Stack Overflow as community channels. | The repository provides issue and discussion navigation, but the opened project pages do not state a formal support offering. |
Plans
In their own words
SQLFluff
SQLFluff is an open-source, dialect-flexible SQL linter designed for ELT applications. It reports style and syntax issues, parses SQL without database access and can automatically fix many violations with one command. Documentation describes support for more than 25 dialects, including T-SQL, PostgreSQL, BigQuery and Snowflake, alongside more than 70 rules for style, structure and best practices. Jinja templating and dbt are supported, and CI/CD integration includes GitHub Actions output for pull-request annotations. SQLFluff is free under the MIT License and installs from PyPI with pip or another Python package manager. It does not execute SQL itself, but templating macros such as dbt's run_query may execute arbitrary SQL. The Jinja templater uses Jinja2 SandboxedEnvironment to limit unsafe code execution. The dbt templater requires the relevant adapter and sqlfluff-templater-dbt package; models accessing a database during compilation require database access. Community support includes documentation, GitHub, Slack and Stack Overflow.
TSQLLint
TSQLLint checks T-SQL scripts for anti-patterns and reports the findings. Its command-line tool can correct issues it identifies as auto-fixable with the --fix or -x option. Rules can be set to off, warning, or error; an error-level violation produces a non-zero exit code. Users can save settings in a .tsqllintrc file, or use the tool’s in-memory defaults when no file is present. The listed SQL Server compatibility levels are 80, 90, 100, 110, 120, 130, 140, and 150. Custom .NET plugins can extend it if they implement TSQLLint’s IPlugin interface and target net6.0. Before linting, it substitutes SQL file placeholders with values from environment variables. Official installation methods include dotnet-tool, Homebrew, and NPM. Its VS Code extension marks potential problems in opened .sql files for inspection on hover, and SQL Server Management Studio can invoke it through External Tools. TSQLLint is free under the MIT License and runs on Linux, macOS, and Windows, with an editor extension also listed.