SQL dialect

SQL Server (T-SQL) SQL Parser for Java and .NET

General SQL Parser (GSP) parses SQL Server (T-SQL) with a dedicated, hand-tuned grammar — full AST access, offline syntax validation, formatting, rewriting, and column-level data lineage , including complete procedural SQL support. One commercial SDK, 38 dialects, Java and .NET.

586
SQL Server (T-SQL) keywords recognized by the grammar
537
keywords the parser also accepts as identifiers
718
SQL Server (T-SQL) test SQL files in the regression corpus
Weekly
release cadence — dialect fixes ship in days

Example

SQL Server (T-SQL) SQL that GSP parses

CREATE PROCEDURE dbo.usp_sync_target @id INT AS
BEGIN TRY
  MERGE dbo.target AS t USING dbo.source AS s ON t.id = s.id
  WHEN MATCHED THEN UPDATE SET t.val = s.val;
END TRY
BEGIN CATCH THROW; END CATCH;

Parse it in Java

import gudusoft.gsqlparser.*;

TGSqlParser parser = new TGSqlParser(EDbVendor.dbvmssql);
parser.sqltext = sql; // the SQL Server (T-SQL) SQL above
if (parser.parse() == 0) {
    System.out.println(parser.sqlstatements.size() + " statement(s) parsed");
} else {
    System.out.println(parser.getErrormessage());
}

The .NET edition exposes the same API in C# — see the C# quick start.

Coverage

What GSP handles in SQL Server (T-SQL)

Beyond parsing, the same AST powers table/column extraction, validation, formatting, and column-level lineage for SQL Server (T-SQL).

Actively maintained

Recent SQL Server (T-SQL) parser updates

Full history in the release notes.

Go deeper

SQL Server (T-SQL) resources

Common questions

Does GSP parse SQL Server (T-SQL) stored procedures and procedural SQL?

Yes. GSP parses T-SQL stored procedures, functions, triggers, BEGIN...END blocks, TRY/CATCH exception handling, and dynamic SQL (EXEC) with lineage folding into a full AST — procedure bodies become real statement trees you can traverse, not opaque text blocks. This is what makes lineage and impact analysis work inside procedural code.

Do I need a SQL Server (T-SQL) database connection to validate SQL?

No. GSP validates SQL Server (T-SQL) syntax completely offline. You get error line and column positions, the offending token, and a hint — with no server, driver, or credentials involved.

How complete is the SQL Server (T-SQL) grammar?

GSP uses a dedicated hand-tuned grammar for SQL Server (T-SQL) — not a generic SQL grammar with flags. The parser recognizes 586 SQL Server (T-SQL) keywords and knows which 537 of them can also be used as identifiers, which is exactly the kind of edge case that breaks generic parsers.

Can I use the SQL Server (T-SQL) parser from C# / .NET?

Yes. The .NET edition (NuGet package gudusoft.gsqlparser, .NET Standard 2.0) exposes the same API surface as the Java edition, so every SQL Server (T-SQL) parsing feature on this page works in C# and VB.NET.

Can GSP extract column-level lineage from SQL Server (T-SQL) SQL?

Yes. The built-in DataFlowAnalyzer produces column-level lineage, impact analysis, and call graphs from SQL Server (T-SQL) scripts — it is the engine behind Gudu SQLFlow and the lineage integrations for DataHub and OpenMetadata.