Azure SQL Parser for Java
General SQL Parser (GSP) parses Azure SQL with its full SQL Server (T-SQL) grammar, extended with Azure-specific syntax — full AST access, offline syntax validation, formatting, rewriting, and column-level data lineage, including complete procedural SQL support. One commercial SDK — Azure SQL is available in the Java edition.
Azure SQL that GSP parses
CREATE EXTERNAL TABLE ClickStream (
url varchar(50), event_date date, user_ip varchar(50)
) WITH (
LOCATION='/webdata/events.csv',
DATA_SOURCE=analytics_source,
FILE_FORMAT=csv_format
); Parse it in Java
import gudusoft.gsqlparser.*;
TGSqlParser parser = new TGSqlParser(EDbVendor.dbvazuresql);
parser.sqltext = sql; // the Azure SQL above
if (parser.parse() == 0) {
System.out.println(parser.sqlstatements.size() + " statement(s) parsed");
} else {
System.out.println(parser.getErrormessage());
} Java edition only. The .NET library has no Azure SQL grammar, so this dialect cannot be parsed from C# or VB.NET. See the .NET SQL Parser SDK for the dialects it does cover.
What GSP handles in Azure SQL
- CREATE EXTERNAL TABLE with LOCATION, DATA_SOURCE, and FILE_FORMAT options
- CREATE DATABASE with Azure EDITION, SERVICE_OBJECTIVE, elastic pool, and WITH LEDGER = ON clauses
- CREATE DATABASE ... AS COPY OF database-copy syntax
- COPY INTO bulk load with WITH (...) options
- CREATE MASTER KEY and database-scoped credentials for external data access
- The complete T-SQL surface: MERGE with OUTPUT, PIVOT/UNPIVOT, CTEs, window functions
- Procedural SQL: Azure SQL stored procedures, functions, triggers, and T-SQL batch scripts — the same procedural engine as SQL Server
Beyond parsing, the same AST powers table/column extraction, validation, formatting, and column-level lineage for Azure SQL.
Azure SQL resources
- Java quick start — Maven/Gradle setup and first parse
Common questions
Does GSP parse Azure SQL stored procedures and procedural SQL?
Yes. GSP parses Azure SQL stored procedures, functions, triggers, and T-SQL batch scripts — the same procedural engine as SQL Server 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 live Azure SQL database connection to validate SQL?
No. GSP validates Azure SQL syntax completely offline. You get error line and column positions, the offending token, and a hint — with no server, driver, or credentials involved.
Can I use the Azure SQL parser from C# / .NET?
Not currently. Azure SQL is a Java-edition dialect — the .NET library ships 15 dedicated grammars and Azure SQL is not one of them, so there is no C# code path for it. Everything else on this page describes the Java SDK. If you need Azure SQL in .NET, email info@sqlparser.com; customer demand is how dialects get prioritized for the .NET port.
Can GSP extract column-level lineage from Azure SQL?
Yes. The built-in DataFlowAnalyzer produces column-level lineage, impact analysis, and call graphs from Azure SQL scripts — it is the engine behind Gudu SQLFlow and the lineage integrations for DataHub and OpenMetadata.