I\'m looking for a good T-SQL Pretty Printer so that all the code looks consistent between developers in our project. Preferably a free/open source one, but paid for isn\'t out
A free and open source alternative to the paid for options that everyone else has listed is Poor Man's T-SQL Formatter. It integrates nicely with SQL Server Management Studio. The options for configuring how the SQL is formatted are somewhat limited when compared to the other tools, but for the price it's hard to complain, and if you really want to change it, the source is available for you to tweak.
I had the same issue but I was looking for a command line tool. I have finally coded a Python script based on sqlparse that is a Python package mature (10+ years), still very active and aiming to parse and format SQL statements.
In post here my tiny Python script pretty_print_sql.py
in case other users would be interested:
import argparse
import sqlparse
# Parse command line arguments
parser = argparse.ArgumentParser(prog="pretty_print_sql")
parser.add_argument("file", type=argparse.FileType("r"), nargs="+")
args = parser.parse_args()
# Pretty print input files
for file in args.file:
print(sqlparse.format(file.read(), reindent=True, keyword_case='upper'))
To use it:
pretty_print_sql.py input.sql > pretty-output.sql
To install sqlparse
using pip
for personal usage:
python3 -m pip install sqlparse --user --upgrade
To install sqlparse
using pipenv
(within a project):
python3 -m pipenv install sqlparse
Other than SQLinForm, Toad for SQL Server comes with an SQL formatter out of the box, among plenty of other advantages over management studio...