Хм, еще один вопрос, с которым я сталкиваюсь много позже, но на тот случай, если это пригодится кому-либо еще в будущем, я реализовал форматер T-SQL с открытым исходным кодом (AGPL): http://www.architectshack.com/PoorMansTSqlFormatter.ashx
Мой подход определенно не подразумевает полный синтаксический анализ SQL (T-SQL - очень сложный язык, я не оцениваю свои шансы на разработку и поддержание полного синтаксического анализатора самостоятельно), а скорее разбираю и затем определяю основные структуры в SQL по ключевому слову. Результатом является частичное дерево синтаксического анализа со всеми выделенными частями форматирования.
Как отмечалось в ответах на вопрос @astander, связанный с, существуют коммерческие варианты комплексного разбора SQL и множество компоновщиков синтаксических анализаторов, но нет полных анализаторов T-SQL с открытым исходным кодом, о которых я знаю.
Создание синтаксического анализатора для простых операций выбора, обновления, удаления очень просто - обработка производных таблиц и подзапросов становится немного сложнее; затем предложения OUTPUT, операторы MERGE, сценарии с несколькими операторами, CTE, десятки операторов DDL, содержащихся в T-SQL, и т. д .: он становится беспорядочным.