maxdop formats T-SQL using Microsoft's own parser, ScriptDom — the one behind DacFx and SQL database projects — so it reads stored procedures, GO batches and SQL Server 2000-era syntax the way the server does, rather than guessing from tokens.
Every format is re-parsed and compared against the input: token stream, syntax tree and comments. On any mismatch your original file is returned untouched with a distinct exit code, so a formatter bug cannot corrupt your source. Measured across 2,215 real-world files it refused nothing, crashed on nothing, and lost none of their 11,261 comments.
It is one static binary with no .NET runtime to install, and the same binary runs in your editor and your build pipeline. Style lives in a .maxdop.json committed next to the code, so a repository formats the same way for everyone who opens it.
What's new in 0.1.2
Casing on Built-in Functions and Globals Built-in function names and global variables now take keyword casing. Until now CAST, COALESCE, NULLIF, LEFT, RIGHT and IIF were recased while len and row_number beside them were not, so a single expression could come out in two cases. New Configuration maxdop now recases from a list of built-in names, and that makes it the only casing decision in the formatter not derived from the parse tree, which is controllable with a new configuration value: { ... "recaseBuiltInFunctions": true } It follows keywordCase, so "lower" brings GETDATE() and @@ROWCOUNT down rather than leaving casing half-applied. Setting it to false keeps the casing you wrote for everything the list covers — built-in function names, global variables, the parser-matched table functions such as STRING_SPLIT, and the aggregate a PIVOT names — so off means off rather than mostly off. It does not reach casing that the parse tree proves. CAST, NVARCHAR, WITHIN GROUP and DBCC CHECKDB … WITH NO_INFOMSGS stay cased under keywordCase with the switch off, because this switch exists for the one decision made from a list instead of from the grammar. Caveats: - The call must have no qualifier. SQL Server requires at least a two-part name to invoke a user-defined function, so an unqualified len(x) can only ever bind to the built-in. If you have a function of your own called Len, you reach it as dbo.Len(x) — which has a call target and is left exactly as you wrote it. - The name must be undelimited. len is untouched. Brackets are how you say "this identifier is spelled exactly like this". - The list is consulted in function-name position only. A column named len, a table named replace, an alias named getdate, a variable named @len. All plain names are untouched. Global variables IF @@ERROR <> 0 PRINT @@SERVERNAME; -- @@rowcount, @@trancount, @@fetch_status, … DECLARE @@MyVar INT is legal T-SQL, and ScriptDom resolves a later reference by spelling rather than by scope, so in an expression position a local @@MyVar arrives as the very same GlobalVariableExpression that @@ROWCOUNT does. Recasing on the prefix quietly renames that variable under a case-sensitive collation. So the documented globals are listed by name, and a local variable spelled like a system one keeps every character you wrote. WITHIN GROUP is one clause -- 0.1.1 -- 0.1.2 …
Yes. maxdop is free and open-source software released under the MIT license.
What is the latest version of maxdop?
The latest version is 0.1.2, released on Aug 31, 2026.
Is it safe to download maxdop?
The download button links to the official installer published on github.com, the same file Windows Package Manager installs. You can verify the downloaded file by comparing its SHA-256 checksum with 55f43288ad3fe0bdb9f354bd6ae3a047b77a0ae87061c927ea6affaf89925891.
Which Windows versions does maxdop support?
maxdop runs on Windows and is available for 64-bit (x64), ARM64 systems.
How do I uninstall maxdop?
Open Settings › Apps › Installed apps, find maxdop and select Uninstall. From the command line, run winget uninstall --id=pagebrooks.maxdop -e.
Is there a portable version of maxdop?
Yes. maxdop is available as a portable ZIP archive (maxdop-0.1.2-win-x64.zip, 64-bit (x64)) that runs without installation. Copy it to any folder or USB drive and run it from there.
Alternatives to maxdop
Other Database programs for Windows from different developers.