diff --git a/sql/tsql/TSqlLexer.g4 b/sql/tsql/TSqlLexer.g4
index dfd765d364..b7c27d3145 100644
--- a/sql/tsql/TSqlLexer.g4
+++ b/sql/tsql/TSqlLexer.g4
@@ -25,857 +25,983 @@ THE SOFTWARE.
lexer grammar TSqlLexer;
+
+fragment A
+ : [aA]
+ ;
+
+fragment B
+ : [bB]
+ ;
+
+fragment C
+ : [cC]
+ ;
+
+fragment D
+ : [dD]
+ ;
+
+fragment E
+ : [eE]
+ ;
+
+fragment F
+ : [fF]
+ ;
+
+fragment G
+ : [gG]
+ ;
+
+fragment H
+ : [hH]
+ ;
+
+fragment I
+ : [iI]
+ ;
+
+fragment J
+ : [jJ]
+ ;
+
+fragment K
+ : [kK]
+ ;
+
+fragment L
+ : [lL]
+ ;
+
+fragment M
+ : [mM]
+ ;
+
+fragment N
+ : [nN]
+ ;
+
+fragment O
+ : [oO]
+ ;
+
+fragment P
+ : [pP]
+ ;
+
+fragment Q
+ : [qQ]
+ ;
+
+fragment R
+ : [rR]
+ ;
+
+fragment S
+ : [sS]
+ ;
+
+fragment T
+ : [tT]
+ ;
+
+fragment U
+ : [uU]
+ ;
+
+fragment V
+ : [vV]
+ ;
+
+fragment W
+ : [wW]
+ ;
+
+fragment X
+ : [xX]
+ ;
+
+fragment Y
+ : [yY]
+ ;
+
+fragment Z
+ : [zZ]
+ ;
+
// Basic keywords (from https://msdn.microsoft.com/en-us/library/ms189822.aspx)
-ADD: 'ADD';
-ALL: 'ALL';
-ALTER: 'ALTER';
-AND: 'AND';
-ANY: 'ANY';
-AS: 'AS';
-ASC: 'ASC';
-AUTHORIZATION: 'AUTHORIZATION';
-ACCELERATED_DATABASE_RECOVERY: 'ACCELERATED_DATABASE_RECOVERY';
-BACKSLASH: '\\';
-BACKUP: 'BACKUP';
-BEGIN: 'BEGIN';
-BETWEEN: 'BETWEEN';
-BREAK: 'BREAK';
-BROWSE: 'BROWSE';
-BULK: 'BULK';
-BY: 'BY';
-CASCADE: 'CASCADE';
-CASE: 'CASE';
-CHECK: 'CHECK';
-CHECKPOINT: 'CHECKPOINT';
-CLOSE: 'CLOSE';
-CLUSTERED: 'CLUSTERED';
-COALESCE: 'COALESCE';
-COLLATE: 'COLLATE';
-COLUMN: 'COLUMN';
-COMMIT: 'COMMIT';
-COMPUTE: 'COMPUTE';
-CONSTRAINT: 'CONSTRAINT';
-CONTAINS: 'CONTAINS';
-CONTAINSTABLE: 'CONTAINSTABLE';
-CONTINUE: 'CONTINUE';
-CONVERT: 'TRY_'? 'CONVERT';
-CREATE: 'CREATE';
-CROSS: 'CROSS';
-CURRENT: 'CURRENT';
-CURRENT_DATE: 'CURRENT_DATE';
-CURRENT_TIME: 'CURRENT_TIME';
-CURRENT_TIMESTAMP: 'CURRENT_TIMESTAMP';
-CURRENT_USER: 'CURRENT_USER';
-CURSOR: 'CURSOR';
-DATABASE: 'DATABASE';
-DBCC: 'DBCC';
-DEALLOCATE: 'DEALLOCATE';
-DECLARE: 'DECLARE';
-DEFAULT: 'DEFAULT';
-DELETE: 'DELETE';
-DENY: 'DENY';
-DESC: 'DESC';
-DISK: 'DISK';
-DISTINCT: 'DISTINCT';
-DISTRIBUTED: 'DISTRIBUTED';
-DOUBLE: 'DOUBLE';
+ADD: A D D ;
+ALL: A L L ;
+ALTER: A L T E R ;
+AND: A N D ;
+ANY: A N Y ;
+AS: A S ;
+ASC: A S C ;
+AUTHORIZATION: A U T H O R I Z A T I O N ;
+ACCELERATED_DATABASE_RECOVERY: A C C E L E R A T E D '_' D A T A B A S E '_' R E C O V E R Y ;
+BACKSLASH: '\\' ;
+BACKUP: B A C K U P ;
+BEGIN: B E G I N ;
+BETWEEN: B E T W E E N ;
+BREAK: B R E A K ;
+BROWSE: B R O W S E ;
+BULK: B U L K ;
+BY: B Y ;
+CASCADE: C A S C A D E ;
+CASE: C A S E ;
+CHECK: C H E C K ;
+CHECKPOINT: C H E C K P O I N T ;
+CLOSE: C L O S E ;
+CLUSTERED: C L U S T E R E D ;
+COALESCE: C O A L E S C E ;
+COLLATE: C O L L A T E ;
+COLUMN: C O L U M N ;
+COMMIT: C O M M I T ;
+COMPUTE: C O M P U T E ;
+CONSTRAINT: C O N S T R A I N T ;
+CONTAINS: C O N T A I N S ;
+CONTAINSTABLE: C O N T A I N S T A B L E ;
+CONTINUE: C O N T I N U E ;
+CONVERT: C O N V E R T ;
+CREATE: C R E A T E ;
+CROSS: C R O S S ;
+CURRENT: C U R R E N T ;
+CURRENT_DATE: C U R R E N T '_' D A T E ;
+CURRENT_TIME: C U R R E N T '_' T I M E ;
+CURRENT_TIMESTAMP: C U R R E N T '_' T I M E S T A M P ;
+CURRENT_USER: C U R R E N T '_' U S E R ;
+CURSOR: C U R S O R ;
+DATABASE: D A T A B A S E ;
+DBCC: D B C C ;
+DEALLOCATE: D E A L L O C A T E ;
+DECLARE: D E C L A R E ;
+DEFAULT: D E F A U L T ;
+DELETE: D E L E T E ;
+DENY: D E N Y ;
+DESC: D E S C ;
+DISK: D I S K ;
+DISTINCT: D I S T I N C T ;
+DISTRIBUTED: D I S T R I B U T E D ;
+DOUBLE: D O U B L E ;
DOUBLE_BACK_SLASH: '\\\\';
DOUBLE_FORWARD_SLASH: '//';
-DROP: 'DROP';
-DUMP: 'DUMP';
-ELSE: 'ELSE';
-END: 'END';
-ERRLVL: 'ERRLVL';
-ESCAPE: 'ESCAPE';
-EXCEPT: 'EXCEPT';
-EXECUTE: 'EXEC' 'UTE'?;
-EXISTS: 'EXISTS';
-EXIT: 'EXIT';
-EXTERNAL: 'EXTERNAL';
-FETCH: 'FETCH';
-FILE: 'FILE';
-FILLFACTOR: 'FILLFACTOR';
-FOR: 'FOR';
-FOREIGN: 'FOREIGN';
-FREETEXT: 'FREETEXT';
-FREETEXTTABLE: 'FREETEXTTABLE';
-FROM: 'FROM';
-FULL: 'FULL';
-FUNCTION: 'FUNCTION';
-GOTO: 'GOTO';
-GRANT: 'GRANT';
-GROUP: 'GROUP';
-HAVING: 'HAVING';
-HOLDLOCK: 'HOLDLOCK';
-IDENTITY: 'IDENTITY';
-IDENTITY_INSERT: 'IDENTITY_INSERT';
-IDENTITYCOL: 'IDENTITYCOL';
-IF: 'IF';
-IN: 'IN';
-INDEX: 'INDEX';
-INNER: 'INNER';
-INSERT: 'INSERT';
-INTERSECT: 'INTERSECT';
-INTO: 'INTO';
-IS: 'IS';
-JOIN: 'JOIN';
-KEY: 'KEY';
-KILL: 'KILL';
-LEFT: 'LEFT';
-LIKE: 'LIKE';
-LINENO: 'LINENO';
-LOAD: 'LOAD';
-MERGE: 'MERGE';
-NATIONAL: 'NATIONAL';
-NEGOTIATE: 'NEGOTIATE';
-NOCHECK: 'NOCHECK';
-NONCLUSTERED: 'NONCLUSTERED';
-NOT: 'NOT';
-NULL_: 'NULL';
-NULLIF: 'NULLIF';
-OF: 'OF';
-OFF: 'OFF';
-OFFSETS: 'OFFSETS';
-ON: 'ON';
-OPEN: 'OPEN';
-OPENDATASOURCE: 'OPENDATASOURCE';
-OPENQUERY: 'OPENQUERY';
-OPENROWSET: 'OPENROWSET';
-OPENJSON: 'OPENJSON';
-OPENXML: 'OPENXML';
-OPTION: 'OPTION';
-OR: 'OR';
-ORDER: 'ORDER';
-OUTER: 'OUTER';
-OVER: 'OVER';
-PERCENT: 'PERCENT';
-PIVOT: 'PIVOT';
-PLAN: 'PLAN';
-PRECISION: 'PRECISION';
-PRIMARY: 'PRIMARY';
-PRINT: 'PRINT';
-PROC: 'PROC';
-PROCEDURE: 'PROCEDURE';
-PUBLIC: 'PUBLIC';
-RAISERROR: 'RAISERROR';
-RAW: 'RAW';
-READ: 'READ';
-READTEXT: 'READTEXT';
-RECONFIGURE: 'RECONFIGURE';
-REFERENCES: 'REFERENCES';
-REPLICATION: 'REPLICATION';
-RESTORE: 'RESTORE';
-RESTRICT: 'RESTRICT';
-RETURN: 'RETURN';
-REVERT: 'REVERT';
-REVOKE: 'REVOKE';
-RIGHT: 'RIGHT';
-ROLLBACK: 'ROLLBACK';
-ROWCOUNT: 'ROWCOUNT';
-ROWGUIDCOL: 'ROWGUIDCOL';
-RULE: 'RULE';
-SAVE: 'SAVE';
-SCHEMA: 'SCHEMA';
-SECURITYAUDIT: 'SECURITYAUDIT';
-SELECT: 'SELECT';
-SEMANTICKEYPHRASETABLE: 'SEMANTICKEYPHRASETABLE';
-SEMANTICSIMILARITYDETAILSTABLE: 'SEMANTICSIMILARITYDETAILSTABLE';
-SEMANTICSIMILARITYTABLE: 'SEMANTICSIMILARITYTABLE';
-SESSION_USER: 'SESSION_USER';
-SET: 'SET';
-SETUSER: 'SETUSER';
-SHUTDOWN: 'SHUTDOWN';
-SOME: 'SOME';
-STATISTICS: 'STATISTICS';
-SYSTEM_USER: 'SYSTEM_USER';
-TABLE: 'TABLE';
-TABLESAMPLE: 'TABLESAMPLE';
-TEXTSIZE: 'TEXTSIZE';
-THEN: 'THEN';
-TO: 'TO';
-TOP: 'TOP';
-TRAN: 'TRAN';
-TRANSACTION: 'TRANSACTION';
-TRIGGER: 'TRIGGER';
-TRUNCATE: 'TRUNCATE';
-TSEQUAL: 'TSEQUAL';
-UNION: 'UNION';
-UNIQUE: 'UNIQUE';
-UNPIVOT: 'UNPIVOT';
-UPDATE: 'UPDATE';
-UPDATETEXT: 'UPDATETEXT';
-USE: 'USE';
-USER: 'USER';
-VALUES: 'VALUES';
-VARYING: 'VARYING';
-VIEW: 'VIEW';
-WAITFOR: 'WAITFOR';
-WHEN: 'WHEN';
-WHERE: 'WHERE';
-WHILE: 'WHILE';
-WITH: 'WITH';
-WITHIN: 'WITHIN';
-WRITETEXT: 'WRITETEXT';
-DOLLAR_PARTITION: '$PARTITION';
+DROP: D R O P ;
+DUMP: D U M P ;
+ELSE: E L S E ;
+END: E N D ;
+ERRLVL: E R R L V L ;
+ESCAPE: E S C A P E ;
+EXCEPT: E X C E P T ;
+EXECUTE: (E X E C | E X E C U T E);
+EXISTS: E X I S T S ;
+EXIT: E X I T ;
+EXTERNAL: E X T E R N A L ;
+FETCH: F E T C H ;
+FILE: F I L E ;
+FILLFACTOR: F I L L F A C T O R ;
+FOR: F O R ;
+FOREIGN: F O R E I G N ;
+FREETEXT: F R E E T E X T ;
+FREETEXTTABLE: F R E E T E X T T A B L E ;
+FROM: F R O M ;
+FULL: F U L L ;
+FUNCTION: F U N C T I O N ;
+GOTO: G O T O ;
+GRANT: G R A N T ;
+GROUP: G R O U P ;
+HAVING: H A V I N G ;
+HOLDLOCK: H O L D L O C K ;
+IDENTITY: I D E N T I T Y ;
+IDENTITY_INSERT: I D E N T I T Y '_' I N S E R T ;
+IDENTITYCOL: I D E N T I T Y C O L ;
+IF: I F ;
+IN: I N ;
+INDEX: I N D E X ;
+INNER: I N N E R ;
+INSERT: I N S E R T ;
+INTERSECT: I N T E R S E C T ;
+INTO: I N T O ;
+IS: I S ;
+JOIN: J O I N ;
+KEY: K E Y ;
+KILL: K I L L ;
+LEFT: L E F T ;
+LIKE: L I K E ;
+LINENO: L I N E N O ;
+LOAD: L O A D ;
+MERGE: M E R G E ;
+NATIONAL: N A T I O N A L ;
+NEGOTIATE: N E G O T I A T E ;
+NOCHECK: N O C H E C K ;
+NONCLUSTERED: N O N C L U S T E R E D ;
+NOT: N O T ;
+NULL_: N U L L ;
+NULLIF: N U L L I F ;
+OF: O F ;
+OFF: O F F ;
+OFFSETS: O F F S E T S ;
+ON: O N ;
+OPEN: O P E N ;
+OPENDATASOURCE: O P E N D A T A S O U R C E ;
+OPENQUERY: O P E N Q U E R Y ;
+OPENROWSET: O P E N R O W S E T ;
+OPENJSON: O P E N J S O N ;
+OPENXML: O P E N X M L ;
+OPTION: O P T I O N ;
+OR: O R ;
+ORDER: O R D E R ;
+OUTER: O U T E R ;
+OVER: O V E R ;
+PERCENT: P E R C E N T ;
+PIVOT: P I V O T ;
+PLAN: P L A N ;
+PRECISION: P R E C I S I O N ;
+PRIMARY: P R I M A R Y ;
+PRINT: P R I N T ;
+PROC: P R O C ;
+PROCEDURE: P R O C E D U R E ;
+PUBLIC: P U B L I C ;
+RAISERROR: R A I S E R R O R ;
+RAW: R A W ;
+READ: R E A D ;
+READTEXT: R E A D T E X T ;
+RECONFIGURE: R E C O N F I G U R E ;
+REFERENCES: R E F E R E N C E S ;
+REPLICATION: R E P L I C A T I O N ;
+RESTORE: R E S T O R E ;
+RESTRICT: R E S T R I C T ;
+RETURN: R E T U R N ;
+REVERT: R E V E R T ;
+REVOKE: R E V O K E ;
+RIGHT: R I G H T ;
+ROLLBACK: R O L L B A C K ;
+ROWCOUNT: R O W C O U N T ;
+ROWGUIDCOL: R O W G U I D C O L ;
+RULE: R U L E ;
+SAVE: S A V E ;
+SCHEMA: S C H E M A ;
+SECURITYAUDIT: S E C U R I T Y A U D I T ;
+SELECT: S E L E C T ;
+SEMANTICKEYPHRASETABLE: S E M A N T I C K E Y P H R A S E T A B L E ;
+SEMANTICSIMILARITYDETAILSTABLE: S E M A N T I C S I M I L A R I T Y D E T A I L S T A B L E ;
+SEMANTICSIMILARITYTABLE: S E M A N T I C S I M I L A R I T Y T A B L E ;
+SESSION_USER: S E S S I O N '_' U S E R ;
+SET: S E T ;
+SETUSER: S E T U S E R ;
+SHUTDOWN: S H U T D O W N ;
+SOME: S O M E ;
+STATISTICS: S T A T I S T I C S ;
+SYSTEM_USER: S Y S T E M '_' U S E R ;
+TABLE: T A B L E ;
+TABLESAMPLE: T A B L E S A M P L E ;
+TEXTSIZE: T E X T S I Z E ;
+THEN: T H E N ;
+TO: T O ;
+TOP: T O P ;
+TRAN: T R A N ;
+TRANSACTION: T R A N S A C T I O N ;
+TRIGGER: T R I G G E R ;
+TRUNCATE: T R U N C A T E ;
+TSEQUAL: T S E Q U A L ;
+UNION: U N I O N ;
+UNIQUE: U N I Q U E ;
+UNPIVOT: U N P I V O T ;
+UPDATE: U P D A T E ;
+UPDATETEXT: U P D A T E T E X T ;
+USE: U S E ;
+USER: U S E R ;
+VALUES: V A L U E S ;
+VARYING: V A R Y I N G ;
+VIEW: V I E W ;
+WAITFOR: W A I T F O R ;
+WHEN: W H E N ;
+WHERE: W H E R E ;
+WHILE: W H I L E ;
+WITH: W I T H ;
+WITHIN: W I T H I N ;
+WRITETEXT: W R I T E T E X T ;
+DOLLAR_PARTITION: '$' P A R T I T I O N ;
+TRY_PARSE: T R Y '_' P A R S E;
//Keywords that can exist in ID etc
-ABSOLUTE: 'ABSOLUTE';
-AT_KEYWORD: 'AT';
-ACCENT_SENSITIVITY: 'ACCENT_SENSITIVITY';
-ACCESS: 'ACCESS';
-ACTION: 'ACTION';
-ACTIVATION: 'ACTIVATION';
-ACTIVE: 'ACTIVE';
-ADDRESS: 'ADDRESS';
-AES_128: 'AES_128';
-AES_192: 'AES_192';
-AES_256: 'AES_256';
-AFFINITY: 'AFFINITY';
-AFTER: 'AFTER';
-AGGREGATE: 'AGGREGATE';
-ALGORITHM: 'ALGORITHM';
-ALLOW_ENCRYPTED_VALUE_MODIFICATIONS: 'ALLOW_ENCRYPTED_VALUE_MODIFICATIONS';
-ALLOW_SNAPSHOT_ISOLATION: 'ALLOW_SNAPSHOT_ISOLATION';
-ALLOWED: 'ALLOWED';
-ANSI_NULL_DEFAULT: 'ANSI_NULL_DEFAULT';
-ANSI_NULLS: 'ANSI_NULLS';
-ANSI_PADDING: 'ANSI_PADDING';
-ANSI_WARNINGS: 'ANSI_WARNINGS';
-APPLICATION_LOG: 'APPLICATION_LOG';
-APPLY: 'APPLY';
-ARITHABORT: 'ARITHABORT';
-ASSEMBLY: 'ASSEMBLY';
-AUDIT: 'AUDIT';
-AUDIT_GUID: 'AUDIT_GUID';
-AUTO: 'AUTO';
-AUTO_CLEANUP: 'AUTO_CLEANUP';
-AUTO_CLOSE: 'AUTO_CLOSE';
-AUTO_CREATE_STATISTICS: 'AUTO_CREATE_STATISTICS';
-AUTO_SHRINK: 'AUTO_SHRINK';
-AUTO_UPDATE_STATISTICS: 'AUTO_UPDATE_STATISTICS';
-AUTO_UPDATE_STATISTICS_ASYNC: 'AUTO_UPDATE_STATISTICS_ASYNC';
-AUTOGROW_ALL_FILES: 'AUTOGROW_ALL_FILES';
-AUTOGROW_SINGLE_FILE: 'AUTOGROW_SINGLE_FILE';
-AVAILABILITY: 'AVAILABILITY';
-AVG: 'AVG';
-BACKUP_PRIORITY: 'BACKUP_PRIORITY';
-BEGIN_DIALOG: 'BEGIN_DIALOG';
-BIGINT: 'BIGINT';
-BINARY_KEYWORD: 'BINARY';
-BINARY_BASE64: 'BINARY BASE64';
-BINARY_CHECKSUM: 'BINARY_CHECKSUM';
-BINDING: 'BINDING';
-BLOB_STORAGE: 'BLOB_STORAGE';
-BROKER: 'BROKER';
-BROKER_INSTANCE: 'BROKER_INSTANCE';
-BULK_LOGGED: 'BULK_LOGGED';
-CALLER: 'CALLER';
-CAP_CPU_PERCENT: 'CAP_CPU_PERCENT';
-CAST: 'CAST';
-TRY_CAST: 'TRY_CAST';
-CATALOG: 'CATALOG';
-CATCH: 'CATCH';
-CHANGE: 'CHANGE';
-CHANGE_RETENTION: 'CHANGE_RETENTION';
-CHANGE_TRACKING: 'CHANGE_TRACKING';
-CHECKSUM: 'CHECKSUM';
-CHECKSUM_AGG: 'CHECKSUM_AGG';
-CLEANUP: 'CLEANUP';
-COLLECTION: 'COLLECTION';
-COLUMN_MASTER_KEY: 'COLUMN_MASTER_KEY';
-COLUMNSTORE: 'COLUMNSTORE';
-COMMITTED: 'COMMITTED';
-COMPATIBILITY_LEVEL: 'COMPATIBILITY_LEVEL';
-CONCAT: 'CONCAT';
-CONCAT_NULL_YIELDS_NULL: 'CONCAT_NULL_YIELDS_NULL';
-CONTENT: 'CONTENT';
-CONTROL: 'CONTROL';
-COOKIE: 'COOKIE';
-COUNT: 'COUNT';
-COUNT_BIG: 'COUNT_BIG';
-COUNTER: 'COUNTER';
-CPU: 'CPU';
-CREATE_NEW: 'CREATE_NEW';
-CREATION_DISPOSITION: 'CREATION_DISPOSITION';
-CREDENTIAL: 'CREDENTIAL';
-CRYPTOGRAPHIC: 'CRYPTOGRAPHIC';
-CUME_DIST: 'CUME_DIST';
-CURSOR_CLOSE_ON_COMMIT: 'CURSOR_CLOSE_ON_COMMIT';
-CURSOR_DEFAULT: 'CURSOR_DEFAULT';
-DATA: 'DATA';
-DATE_CORRELATION_OPTIMIZATION: 'DATE_CORRELATION_OPTIMIZATION';
-DATEADD: 'DATEADD';
-DATEDIFF: 'DATEDIFF';
-DATENAME: 'DATENAME';
-DATEPART: 'DATEPART';
-DAYS: 'DAYS';
-DB_CHAINING: 'DB_CHAINING';
-DB_FAILOVER: 'DB_FAILOVER';
-DECRYPTION: 'DECRYPTION';
-DEFAULT_DOUBLE_QUOTE: ["]'DEFAULT'["];
-DEFAULT_FULLTEXT_LANGUAGE: 'DEFAULT_FULLTEXT_LANGUAGE';
-DEFAULT_LANGUAGE: 'DEFAULT_LANGUAGE';
-DEFINITION: 'DEFINITION';
-DELAY: 'DELAY';
-DELAYED_DURABILITY: 'DELAYED_DURABILITY';
-DELETED: 'DELETED';
-DENSE_RANK: 'DENSE_RANK';
-DEPENDENTS: 'DEPENDENTS';
-DES: 'DES';
-DESCRIPTION: 'DESCRIPTION';
-DESX: 'DESX';
-DHCP: 'DHCP';
-DIALOG: 'DIALOG';
-DIRECTORY_NAME: 'DIRECTORY_NAME';
-DISABLE: 'DISABLE';
-DISABLE_BROKER: 'DISABLE_BROKER';
-DISABLED: 'DISABLED';
-DISK_DRIVE: [A-Z][:];
-DOCUMENT: 'DOCUMENT';
-DYNAMIC: 'DYNAMIC';
-ELEMENTS: 'ELEMENTS';
-EMERGENCY: 'EMERGENCY';
-EMPTY: 'EMPTY';
-ENABLE: 'ENABLE';
-ENABLE_BROKER: 'ENABLE_BROKER';
-ENCRYPTED_VALUE: 'ENCRYPTED_VALUE';
-ENCRYPTION: 'ENCRYPTION';
-ENDPOINT_URL: 'ENDPOINT_URL';
-ERROR_BROKER_CONVERSATIONS: 'ERROR_BROKER_CONVERSATIONS';
-EXCLUSIVE: 'EXCLUSIVE';
-EXECUTABLE: 'EXECUTABLE';
-EXIST: 'EXIST';
-EXPAND: 'EXPAND';
-EXPIRY_DATE: 'EXPIRY_DATE';
-EXPLICIT: 'EXPLICIT';
-FAIL_OPERATION: 'FAIL_OPERATION';
-FAILOVER_MODE: 'FAILOVER_MODE';
-FAILURE: 'FAILURE';
-FAILURE_CONDITION_LEVEL: 'FAILURE_CONDITION_LEVEL';
-FAST: 'FAST';
-FAST_FORWARD: 'FAST_FORWARD';
-FILEGROUP: 'FILEGROUP';
-FILEGROWTH: 'FILEGROWTH';
-FILENAME: 'FILENAME';
-FILEPATH: 'FILEPATH';
-FILESTREAM: 'FILESTREAM';
-FILTER: 'FILTER';
-FIRST: 'FIRST';
-FIRST_VALUE: 'FIRST_VALUE';
-FOLLOWING: 'FOLLOWING';
-FORCE: 'FORCE';
-FORCE_FAILOVER_ALLOW_DATA_LOSS: 'FORCE_FAILOVER_ALLOW_DATA_LOSS';
-FORCED: 'FORCED';
-FORMAT: 'FORMAT';
-FORWARD_ONLY: 'FORWARD_ONLY';
-FULLSCAN: 'FULLSCAN';
-FULLTEXT: 'FULLTEXT';
-GB: 'GB';
-GETDATE: 'GETDATE';
-GETUTCDATE: 'GETUTCDATE';
-GLOBAL: 'GLOBAL';
-GO_BATCH: [\r\n]* [\t ]* 'GO'[\t\n\r ];
-GO: 'GO';
-GROUP_MAX_REQUESTS: 'GROUP_MAX_REQUESTS';
-GROUPING: 'GROUPING';
-GROUPING_ID: 'GROUPING_ID';
-HADR: 'HADR';
-HASH: 'HASH';
-HEALTH_CHECK_TIMEOUT: 'HEALTH_CHECK_TIMEOUT';
-HIGH: 'HIGH';
-HONOR_BROKER_PRIORITY: 'HONOR_BROKER_PRIORITY';
-HOURS: 'HOURS';
-IDENTITY_VALUE: 'IDENTITY_VALUE';
-IGNORE_NONCLUSTERED_COLUMNSTORE_INDEX: 'IGNORE_NONCLUSTERED_COLUMNSTORE_INDEX';
-IMMEDIATE: 'IMMEDIATE';
-IMPERSONATE: 'IMPERSONATE';
-IMPORTANCE: 'IMPORTANCE';
-INCLUDE_NULL_VALUES: 'INCLUDE_NULL_VALUES';
-INCREMENTAL: 'INCREMENTAL';
-INITIATOR: 'INITIATOR';
-INPUT: 'INPUT';
-INSENSITIVE: 'INSENSITIVE';
-INSERTED: 'INSERTED';
-INT: 'INT';
-IP: 'IP';
-ISOLATION: 'ISOLATION';
-JOB: 'JOB';
-JSON: 'JSON';
-KB: 'KB';
-KEEP: 'KEEP';
-KEEPFIXED: 'KEEPFIXED';
-KEY_SOURCE: 'KEY_SOURCE';
-KEYS: 'KEYS';
-KEYSET: 'KEYSET';
-LAG: 'LAG';
-LAST: 'LAST';
-LAST_VALUE: 'LAST_VALUE';
-LEAD: 'LEAD';
-LEVEL: 'LEVEL';
-LIST: 'LIST';
-LISTENER: 'LISTENER';
-LISTENER_URL: 'LISTENER_URL';
-LOB_COMPACTION: 'LOB_COMPACTION';
-LOCAL: 'LOCAL';
-LOCATION: 'LOCATION';
-LOCK: 'LOCK';
-LOCK_ESCALATION: 'LOCK_ESCALATION';
-LOGIN: 'LOGIN';
-LOOP: 'LOOP';
-LOW: 'LOW';
-MANUAL: 'MANUAL';
-MARK: 'MARK';
-MATERIALIZED: 'MATERIALIZED';
-MAX: 'MAX';
-MAX_CPU_PERCENT: 'MAX_CPU_PERCENT';
-MAX_DOP: 'MAX_DOP';
-MAX_FILES: 'MAX_FILES';
-MAX_IOPS_PER_VOLUME: 'MAX_IOPS_PER_VOLUME';
-MAX_MEMORY_PERCENT: 'MAX_MEMORY_PERCENT';
-MAX_PROCESSES: 'MAX_PROCESSES';
-MAX_QUEUE_READERS: 'MAX_QUEUE_READERS';
-MAX_ROLLOVER_FILES: 'MAX_ROLLOVER_FILES';
-MAXDOP: 'MAXDOP';
-MAXRECURSION: 'MAXRECURSION';
-MAXSIZE: 'MAXSIZE';
-MB: 'MB';
-MEDIUM: 'MEDIUM';
-MEMORY_OPTIMIZED_DATA: 'MEMORY_OPTIMIZED_DATA';
-MESSAGE: 'MESSAGE';
-MIN: 'MIN';
-MIN_ACTIVE_ROWVERSION: 'MIN_ACTIVE_ROWVERSION';
-MIN_CPU_PERCENT: 'MIN_CPU_PERCENT';
-MIN_IOPS_PER_VOLUME: 'MIN_IOPS_PER_VOLUME';
-MIN_MEMORY_PERCENT: 'MIN_MEMORY_PERCENT';
-MINUTES: 'MINUTES';
-MIRROR_ADDRESS: 'MIRROR_ADDRESS';
-MIXED_PAGE_ALLOCATION: 'MIXED_PAGE_ALLOCATION';
-MODE: 'MODE';
-MODIFY: 'MODIFY';
-MOVE: 'MOVE';
-MULTI_USER: 'MULTI_USER';
-NAME: 'NAME';
-NESTED_TRIGGERS: 'NESTED_TRIGGERS';
-NEW_ACCOUNT: 'NEW_ACCOUNT';
-NEW_BROKER: 'NEW_BROKER';
-NEW_PASSWORD: 'NEW_PASSWORD';
-NEWNAME: 'NEWNAME';
-NEXT: 'NEXT';
-NO: 'NO';
-NO_TRUNCATE: 'NO_TRUNCATE';
-NO_WAIT: 'NO_WAIT';
-NOCOUNT: 'NOCOUNT';
-NODES: 'NODES';
-NOEXPAND: 'NOEXPAND';
-NON_TRANSACTED_ACCESS: 'NON_TRANSACTED_ACCESS';
-NORECOMPUTE: 'NORECOMPUTE';
-NORECOVERY: 'NORECOVERY';
-NOTIFICATIONS: 'NOTIFICATIONS';
-NOWAIT: 'NOWAIT';
-NTILE: 'NTILE';
-NUMANODE: 'NUMANODE';
-NUMBER: 'NUMBER';
-NUMERIC_ROUNDABORT: 'NUMERIC_ROUNDABORT';
-OBJECT: 'OBJECT';
-OFFLINE: 'OFFLINE';
-OFFSET: 'OFFSET';
-OLD_ACCOUNT: 'OLD_ACCOUNT';
-ONLINE: 'ONLINE';
-ONLY: 'ONLY';
-OPEN_EXISTING: 'OPEN_EXISTING';
-OPTIMISTIC: 'OPTIMISTIC';
-OPTIMIZE: 'OPTIMIZE';
-OUT: 'OUT';
-OUTPUT: 'OUTPUT';
-OVERRIDE: 'OVERRIDE';
-OWNER: 'OWNER';
-OWNERSHIP: 'OWNERSHIP';
-PAGE_VERIFY: 'PAGE_VERIFY';
-PARAMETERIZATION: 'PARAMETERIZATION';
-PARTITION: 'PARTITION';
-PARTITIONS: 'PARTITIONS';
-PARTNER: 'PARTNER';
-PATH: 'PATH';
-PERCENT_RANK: 'PERCENT_RANK';
-PERCENTILE_CONT: 'PERCENTILE_CONT';
-PERCENTILE_DISC: 'PERCENTILE_DISC';
-POISON_MESSAGE_HANDLING: 'POISON_MESSAGE_HANDLING';
-POOL: 'POOL';
-PORT: 'PORT';
-PRECEDING: 'PRECEDING';
-PRIMARY_ROLE: 'PRIMARY_ROLE';
-PRIOR: 'PRIOR';
-PRIORITY: 'PRIORITY';
-PRIORITY_LEVEL: 'PRIORITY_LEVEL';
-PRIVATE: 'PRIVATE';
-PRIVATE_KEY: 'PRIVATE_KEY';
-PRIVILEGES: 'PRIVILEGES';
-PROCEDURE_NAME: 'PROCEDURE_NAME';
-PROPERTY: 'PROPERTY';
-PROVIDER: 'PROVIDER';
-PROVIDER_KEY_NAME: 'PROVIDER_KEY_NAME';
-QUERY: 'QUERY';
-QUEUE: 'QUEUE';
-QUEUE_DELAY: 'QUEUE_DELAY';
-QUOTED_IDENTIFIER: 'QUOTED_IDENTIFIER';
-RANGE: 'RANGE';
-RANK: 'RANK';
-RC2: 'RC2';
-RC4: 'RC4';
-RC4_128: 'RC4_128';
-READ_COMMITTED_SNAPSHOT: 'READ_COMMITTED_SNAPSHOT';
-READ_ONLY: 'READ_ONLY';
-READ_ONLY_ROUTING_LIST: 'READ_ONLY_ROUTING_LIST';
-READ_WRITE: 'READ_WRITE';
-READONLY: 'READONLY';
-READWRITE: 'READWRITE';
-REBUILD: 'REBUILD';
-RECEIVE: 'RECEIVE';
-RECOMPILE: 'RECOMPILE';
-RECOVERY: 'RECOVERY';
-RECURSIVE_TRIGGERS: 'RECURSIVE_TRIGGERS';
-RELATIVE: 'RELATIVE';
-REMOTE: 'REMOTE';
-REMOTE_SERVICE_NAME: 'REMOTE_SERVICE_NAME';
-REMOVE: 'REMOVE';
-REORGANIZE: 'REORGANIZE';
-REPEATABLE: 'REPEATABLE';
-REPLICA: 'REPLICA';
-REQUEST_MAX_CPU_TIME_SEC: 'REQUEST_MAX_CPU_TIME_SEC';
-REQUEST_MAX_MEMORY_GRANT_PERCENT: 'REQUEST_MAX_MEMORY_GRANT_PERCENT';
-REQUEST_MEMORY_GRANT_TIMEOUT_SEC: 'REQUEST_MEMORY_GRANT_TIMEOUT_SEC';
-REQUIRED_SYNCHRONIZED_SECONDARIES_TO_COMMIT: 'REQUIRED_SYNCHRONIZED_SECONDARIES_TO_COMMIT';
-RESERVE_DISK_SPACE: 'RESERVE_DISK_SPACE';
-RESOURCE: 'RESOURCE';
-RESOURCE_MANAGER_LOCATION: 'RESOURCE_MANAGER_LOCATION';
-RESTRICTED_USER: 'RESTRICTED_USER';
-RETENTION: 'RETENTION';
-ROBUST: 'ROBUST';
-ROOT: 'ROOT';
-ROUTE: 'ROUTE';
-ROW: 'ROW';
-ROW_NUMBER: 'ROW_NUMBER';
-ROWGUID: 'ROWGUID';
-ROWS: 'ROWS';
-SAMPLE: 'SAMPLE';
-SCHEMABINDING: 'SCHEMABINDING';
-SCOPED: 'SCOPED';
-SCROLL: 'SCROLL';
-SCROLL_LOCKS: 'SCROLL_LOCKS';
-SEARCH: 'SEARCH';
-SECONDARY: 'SECONDARY';
-SECONDARY_ONLY: 'SECONDARY_ONLY';
-SECONDARY_ROLE: 'SECONDARY_ROLE';
-SECONDS: 'SECONDS';
-SECRET: 'SECRET';
-SECURABLES: 'SECURABLES';
-SECURITY: 'SECURITY';
-SECURITY_LOG: 'SECURITY_LOG';
-SEEDING_MODE: 'SEEDING_MODE';
-SELF: 'SELF';
-SEMI_SENSITIVE: 'SEMI_SENSITIVE';
-SEND: 'SEND';
-SENT: 'SENT';
-SEQUENCE: 'SEQUENCE';
-SERIALIZABLE: 'SERIALIZABLE';
-SESSION_TIMEOUT: 'SESSION_TIMEOUT';
-SETERROR: 'SETERROR';
-SHARE: 'SHARE';
-SHOWPLAN: 'SHOWPLAN';
-SIGNATURE: 'SIGNATURE';
-SIMPLE: 'SIMPLE';
-SINGLE_USER: 'SINGLE_USER';
-SIZE: 'SIZE';
-SMALLINT: 'SMALLINT';
-SNAPSHOT: 'SNAPSHOT';
-SPATIAL_WINDOW_MAX_CELLS: 'SPATIAL_WINDOW_MAX_CELLS';
-STANDBY: 'STANDBY';
-START_DATE: 'START_DATE';
-STATIC: 'STATIC';
-STATS_STREAM: 'STATS_STREAM';
-STATUS: 'STATUS';
-STATUSONLY: 'STATUSONLY';
-STDEV: 'STDEV';
-STDEVP: 'STDEVP';
-STOPLIST: 'STOPLIST';
-STRING_AGG: 'STRING_AGG';
-STUFF: 'STUFF';
-SUBJECT: 'SUBJECT';
-SUBSCRIBE: 'SUBSCRIBE';
-SUBSCRIPTION: 'SUBSCRIPTION';
-SUM: 'SUM';
-SUSPEND: 'SUSPEND';
-SYMMETRIC: 'SYMMETRIC';
-SYNCHRONOUS_COMMIT: 'SYNCHRONOUS_COMMIT';
-SYNONYM: 'SYNONYM';
-SYSTEM: 'SYSTEM';
-TAKE: 'TAKE';
-TARGET_RECOVERY_TIME: 'TARGET_RECOVERY_TIME';
-TB: 'TB';
-TEXTIMAGE_ON: 'TEXTIMAGE_ON';
-THROW: 'THROW';
-TIES: 'TIES';
-TIME: 'TIME';
-TIMEOUT: 'TIMEOUT';
-TIMER: 'TIMER';
-TINYINT: 'TINYINT';
-TORN_PAGE_DETECTION: 'TORN_PAGE_DETECTION';
-TRACKING: 'TRACKING';
-TRANSFORM_NOISE_WORDS: 'TRANSFORM_NOISE_WORDS';
-TRIPLE_DES: 'TRIPLE_DES';
-TRIPLE_DES_3KEY: 'TRIPLE_DES_3KEY';
-TRUSTWORTHY: 'TRUSTWORTHY';
-TRY: 'TRY';
-TSQL: 'TSQL';
-TWO_DIGIT_YEAR_CUTOFF: 'TWO_DIGIT_YEAR_CUTOFF';
-TYPE: 'TYPE';
-TYPE_WARNING: 'TYPE_WARNING';
-UNBOUNDED: 'UNBOUNDED';
-UNCOMMITTED: 'UNCOMMITTED';
-UNKNOWN: 'UNKNOWN';
-UNLIMITED: 'UNLIMITED';
-UNMASK: 'UNMASK';
-UOW: 'UOW';
-USING: 'USING';
-VALID_XML: 'VALID_XML';
-VALIDATION: 'VALIDATION';
-VALUE: 'VALUE';
-VAR: 'VAR';
-VARBINARY_KEYWORD: 'VARBINARY';
-VARP: 'VARP';
-VIEW_METADATA: 'VIEW_METADATA';
-VIEWS: 'VIEWS';
-WAIT: 'WAIT';
-WELL_FORMED_XML: 'WELL_FORMED_XML';
-WITHOUT_ARRAY_WRAPPER: 'WITHOUT_ARRAY_WRAPPER';
-WORK: 'WORK';
-WORKLOAD: 'WORKLOAD';
-XML: 'XML';
-XMLDATA: 'XMLDATA';
-XMLNAMESPACES: 'XMLNAMESPACES';
-XMLSCHEMA: 'XMLSCHEMA';
-XSINIL: 'XSINIL';
-ZONE: 'ZONE';
-DOLLAR_ACTION: '$ACTION';
+ABSOLUTE: A B S O L U T E ;
+AT_KEYWORD: A T ;
+ACCENT_SENSITIVITY: A C C E N T '_' S E N S I T I V I T Y ;
+ACCESS: A C C E S S ;
+ACTION: A C T I O N ;
+ACTIVATION: A C T I V A T I O N ;
+ACTIVE: A C T I V E ;
+ADDRESS: A D D R E S S ;
+AES_128: A E S '_128' ;
+AES_192: A E S '_192' ;
+AES_256: A E S '_256' ;
+AFFINITY: A F F I N I T Y ;
+AFTER: A F T E R ;
+AGGREGATE: A G G R E G A T E ;
+ALGORITHM: A L G O R I T H M ;
+ALLOW_ENCRYPTED_VALUE_MODIFICATIONS: A L L O W '_' E N C R Y P T E D '_' V A L U E '_' M O D I F I C A T I O N S ;
+ALLOW_SNAPSHOT_ISOLATION: A L L O W '_' S N A P S H O T '_' I S O L A T I O N ;
+ALLOWED: A L L O W E D ;
+ANSI_NULL_DEFAULT: A N S I '_' N U L L '_' D E F A U L T ;
+ANSI_NULLS: A N S I '_' N U L L S ;
+ANSI_PADDING: A N S I '_' P A D D I N G ;
+ANSI_WARNINGS: A N S I '_' W A R N I N G S ;
+APPLICATION_LOG: A P P L I C A T I O N '_' L O G ;
+APPLY: A P P L Y ;
+ARITHABORT: A R I T H A B O R T ;
+ASSEMBLY: A S S E M B L Y ;
+AUDIT: A U D I T ;
+AUDIT_GUID: A U D I T '_' G U I D ;
+AUTO: A U T O ;
+AUTO_CLEANUP: A U T O '_' C L E A N U P ;
+AUTO_CLOSE: A U T O '_' C L O S E ;
+AUTO_CREATE_STATISTICS: A U T O '_' C R E A T E '_' S T A T I S T I C S ;
+AUTO_SHRINK: A U T O '_' S H R I N K ;
+AUTO_UPDATE_STATISTICS: A U T O '_' U P D A T E '_' S T A T I S T I C S ;
+AUTO_UPDATE_STATISTICS_ASYNC: A U T O '_' U P D A T E '_' S T A T I S T I C S '_' A S Y N C ;
+AUTOGROW_ALL_FILES: A U T O G R O W '_' A L L '_' F I L E S ;
+AUTOGROW_SINGLE_FILE: A U T O G R O W '_' S I N G L E '_' F I L E ;
+AVAILABILITY: A V A I L A B I L I T Y ;
+AVG: A V G ;
+BACKUP_PRIORITY: B A C K U P '_' P R I O R I T Y ;
+BEGIN_DIALOG: B E G I N '_' D I A L O G ;
+BIGINT: B I G I N T ;
+BINARY_KEYWORD: B I N A R Y ;
+BINARY_BASE64: B I N A R Y ' ' B A S E '64';
+BINARY_CHECKSUM: B I N A R Y '_' C H E C K S U M ;
+BINDING: B I N D I N G ;
+BLOB_STORAGE: B L O B '_' S T O R A G E ;
+BROKER: B R O K E R ;
+BROKER_INSTANCE: B R O K E R '_' I N S T A N C E ;
+BULK_LOGGED: B U L K '_' L O G G E D ;
+CALLER: C A L L E R ;
+CAP_CPU_PERCENT: C A P '_' C P U '_' P E R C E N T ;
+CAST: C A S T ;
+TRY_CAST: T R Y '_' C A S T ;
+CATALOG: C A T A L O G ;
+CATCH: C A T C H ;
+CHANGE: C H A N G E ;
+CHANGE_RETENTION: C H A N G E '_' R E T E N T I O N ;
+CHANGE_TRACKING: C H A N G E '_' T R A C K I N G ;
+CHECKSUM: C H E C K S U M ;
+CHECKSUM_AGG: C H E C K S U M '_' A G G ;
+CLEANUP: C L E A N U P ;
+COLLECTION: C O L L E C T I O N ;
+COLUMN_MASTER_KEY: C O L U M N '_' M A S T E R '_' K E Y ;
+COLUMNSTORE: C O L U M N S T O R E ;
+COMMITTED: C O M M I T T E D ;
+COMPATIBILITY_LEVEL: C O M P A T I B I L I T Y '_' L E V E L ;
+CONCAT: C O N C A T ;
+CONCAT_NULL_YIELDS_NULL: C O N C A T '_' N U L L '_' Y I E L D S '_' N U L L ;
+CONTENT: C O N T E N T ;
+CONTROL: C O N T R O L ;
+COOKIE: C O O K I E ;
+COUNT: C O U N T ;
+COUNT_BIG: C O U N T '_' B I G ;
+COUNTER: C O U N T E R ;
+CPU: C P U ;
+CREATE_NEW: C R E A T E '_' N E W ;
+CREATION_DISPOSITION: C R E A T I O N '_' D I S P O S I T I O N ;
+CREDENTIAL: C R E D E N T I A L ;
+CRYPTOGRAPHIC: C R Y P T O G R A P H I C ;
+CUME_DIST: C U M E '_' D I S T ;
+CURSOR_CLOSE_ON_COMMIT: C U R S O R '_' C L O S E '_' O N '_' C O M M I T ;
+CURSOR_DEFAULT: C U R S O R '_' D E F A U L T ;
+DATA: D A T A ;
+DATE_CORRELATION_OPTIMIZATION: D A T E '_' C O R R E L A T I O N '_' O P T I M I Z A T I O N ;
+DATEADD: D A T E A D D ;
+DATEDIFF: D A T E D I F F ;
+DATENAME: D A T E N A M E ;
+DATEPART: D A T E P A R T ;
+DAYS: D A Y S ;
+DB_CHAINING: D B '_' C H A I N I N G ;
+DB_FAILOVER: D B '_' F A I L O V E R ;
+DECRYPTION: D E C R Y P T I O N ;
+DEFAULT_DOUBLE_QUOTE: ["] D E F A U L T ["] ;
+DEFAULT_FULLTEXT_LANGUAGE: D E F A U L T '_' F U L L T E X T '_' L A N G U A G E ;
+DEFAULT_LANGUAGE: D E F A U L T '_' L A N G U A G E ;
+DEFINITION: D E F I N I T I O N ;
+DELAY: D E L A Y ;
+DELAYED_DURABILITY: D E L A Y E D '_' D U R A B I L I T Y ;
+DELETED: D E L E T E D ;
+DENSE_RANK: D E N S E '_' R A N K ;
+DEPENDENTS: D E P E N D E N T S ;
+DES: D E S ;
+DESCRIPTION: D E S C R I P T I O N ;
+DESX: D E S X ;
+DHCP: D H C P ;
+DIALOG: D I A L O G ;
+DIRECTORY_NAME: D I R E C T O R Y '_' N A M E ;
+DISABLE: D I S A B L E ;
+DISABLE_BROKER: D I S A B L E '_' B R O K E R ;
+DISABLED: D I S A B L E D ;
+DISK_DRIVE: [A-Za-z] [:] ;
+DOCUMENT: D O C U M E N T ;
+DYNAMIC: D Y N A M I C ;
+ELEMENTS: E L E M E N T S ;
+EMERGENCY: E M E R G E N C Y ;
+EMPTY_: E M P T Y ;
+ENABLE: E N A B L E ;
+ENABLE_BROKER: E N A B L E '_' B R O K E R ;
+ENCRYPTED_VALUE: E N C R Y P T E D '_' V A L U E ;
+ENCRYPTION: E N C R Y P T I O N ;
+ENDPOINT_URL: E N D P O I N T '_' U R L ;
+ERROR_BROKER_CONVERSATIONS: E R R O R '_' B R O K E R '_' C O N V E R S A T I O N S ;
+EXCLUSIVE: E X C L U S I V E ;
+EXECUTABLE: E X E C U T A B L E ;
+EXIST: E X I S T ;
+EXPAND: E X P A N D ;
+EXPIRY_DATE: E X P I R Y '_' D A T E ;
+EXPLICIT: E X P L I C I T ;
+FAIL_OPERATION: F A I L '_' O P E R A T I O N ;
+FAILOVER_MODE: F A I L O V E R '_' M O D E ;
+FAILURE: F A I L U R E ;
+FAILURE_CONDITION_LEVEL: F A I L U R E '_' C O N D I T I O N '_' L E V E L ;
+FAST: F A S T ;
+FAST_FORWARD: F A S T '_' F O R W A R D ;
+FILEGROUP: F I L E G R O U P ;
+FILEGROWTH: F I L E G R O W T H ;
+FILENAME: F I L E N A M E ;
+FILEPATH: F I L E P A T H ;
+FILESTREAM: F I L E S T R E A M ;
+FILTER: F I L T E R ;
+FIRST: F I R S T ;
+FIRST_VALUE: F I R S T '_' V A L U E ;
+FOLLOWING: F O L L O W I N G ;
+FORCE: F O R C E ;
+FORCE_FAILOVER_ALLOW_DATA_LOSS: F O R C E '_' F A I L O V E R '_' A L L O W '_' D A T A '_' L O S S ;
+FORCED: F O R C E D ;
+FORMAT: F O R M A T ;
+FORWARD_ONLY: F O R W A R D '_' O N L Y ;
+FULLSCAN: F U L L S C A N ;
+FULLTEXT: F U L L T E X T ;
+GB: G B ;
+GETDATE: G E T D A T E ;
+GETUTCDATE: G E T U T C D A T E ;
+GLOBAL: G L O B A L ;
+GO_BATCH: [\r\n] * [\t] * G O [\t\n\r] ;
+GO: G O ;
+GROUP_MAX_REQUESTS: G R O U P '_' M A X '_' R E Q U E S T S ;
+GROUPING: G R O U P I N G ;
+GROUPING_ID: G R O U P I N G '_' I D ;
+HADR: H A D R ;
+HASH: H A S H ;
+HEALTH_CHECK_TIMEOUT: H E A L T H '_' C H E C K '_' T I M E O U T ;
+HIGH: H I G H ;
+HONOR_BROKER_PRIORITY: H O N O R '_' B R O K E R '_' P R I O R I T Y ;
+HOURS: H O U R S ;
+IDENTITY_VALUE: I D E N T I T Y '_' V A L U E ;
+IGNORE_NONCLUSTERED_COLUMNSTORE_INDEX: I G N O R E '_' N O N C L U S T E R E D '_' C O L U M N S T O R E '_' I N D E X ;
+IMMEDIATE: I M M E D I A T E ;
+IMPERSONATE: I M P E R S O N A T E ;
+IMPORTANCE: I M P O R T A N C E ;
+INCLUDE_NULL_VALUES: I N C L U D E '_' N U L L '_' V A L U E S ;
+INCREMENTAL: I N C R E M E N T A L ;
+INITIATOR: I N I T I A T O R ;
+INPUT: I N P U T ;
+INSENSITIVE: I N S E N S I T I V E ;
+INSERTED: I N S E R T E D ;
+INT: I N T ;
+IP: I P ;
+ISOLATION: I S O L A T I O N ;
+JOB: J O B ;
+JSON: J S O N ;
+KB: K B ;
+KEEP: K E E P ;
+KEEPFIXED: K E E P F I X E D ;
+KEY_SOURCE: K E Y '_' S O U R C E ;
+KEYS: K E Y S ;
+KEYSET: K E Y S E T ;
+LAG: L A G ;
+LAST: L A S T ;
+LAST_VALUE: L A S T '_' V A L U E ;
+LEAD: L E A D ;
+LEVEL: L E V E L ;
+LIST: L I S T ;
+LISTENER: L I S T E N E R ;
+LISTENER_URL: L I S T E N E R '_' U R L ;
+LOB_COMPACTION: L O B '_' C O M P A C T I O N ;
+LOCAL: L O C A L ;
+LOCATION: L O C A T I O N ;
+LOCK: L O C K ;
+LOCK_ESCALATION: L O C K '_' E S C A L A T I O N ;
+LOGIN: L O G I N ;
+LOOP: L O O P ;
+LOW: L O W ;
+MANUAL: M A N U A L ;
+MARK: M A R K ;
+MATERIALIZED: M A T E R I A L I Z E D ;
+MAX: M A X ;
+MAX_CPU_PERCENT: M A X '_' C P U '_' P E R C E N T ;
+MAX_DOP: M A X '_' D O P ;
+MAX_FILES: M A X '_' F I L E S ;
+MAX_IOPS_PER_VOLUME: M A X '_' I O P S '_' P E R '_' V O L U M E ;
+MAX_MEMORY_PERCENT: M A X '_' M E M O R Y '_' P E R C E N T ;
+MAX_PROCESSES: M A X '_' P R O C E S S E S ;
+MAX_QUEUE_READERS: M A X '_' Q U E U E '_' R E A D E R S ;
+MAX_ROLLOVER_FILES: M A X '_' R O L L O V E R '_' F I L E S ;
+MAXDOP: M A X D O P ;
+MAXRECURSION: M A X R E C U R S I O N ;
+MAXSIZE: M A X S I Z E ;
+MB: M B ;
+MEDIUM: M E D I U M ;
+MEMORY_OPTIMIZED_DATA: M E M O R Y '_' O P T I M I Z E D '_' D A T A ;
+MESSAGE: M E S S A G E ;
+MIN: M I N ;
+MIN_ACTIVE_ROWVERSION: M I N '_' A C T I V E '_' R O W V E R S I O N ;
+MIN_CPU_PERCENT: M I N '_' C P U '_' P E R C E N T ;
+MIN_IOPS_PER_VOLUME: M I N '_' I O P S '_' P E R '_' V O L U M E ;
+MIN_MEMORY_PERCENT: M I N '_' M E M O R Y '_' P E R C E N T ;
+MINUTES: M I N U T E S ;
+MIRROR_ADDRESS: M I R R O R '_' A D D R E S S ;
+MIXED_PAGE_ALLOCATION: M I X E D '_' P A G E '_' A L L O C A T I O N ;
+MODE: M O D E ;
+MODIFY: M O D I F Y ;
+MOVE: M O V E ;
+MULTI_USER: M U L T I '_' U S E R ;
+NAME: N A M E ;
+NESTED_TRIGGERS: N E S T E D '_' T R I G G E R S ;
+NEW_ACCOUNT: N E W '_' A C C O U N T ;
+NEW_BROKER: N E W '_' B R O K E R ;
+NEW_PASSWORD: N E W '_' P A S S W O R D ;
+NEWNAME: N E W N A M E ;
+NEXT: N E X T ;
+NO: N O ;
+NO_TRUNCATE: N O '_' T R U N C A T E ;
+NO_WAIT: N O '_' W A I T ;
+NOCOUNT: N O C O U N T ;
+NODES: N O D E S ;
+NOEXPAND: N O E X P A N D ;
+NON_TRANSACTED_ACCESS: N O N '_' T R A N S A C T E D '_' A C C E S S ;
+NORECOMPUTE: N O R E C O M P U T E ;
+NORECOVERY: N O R E C O V E R Y ;
+NOTIFICATIONS: N O T I F I C A T I O N S ;
+NOWAIT: N O W A I T ;
+NTILE: N T I L E ;
+NUMANODE: N U M A N O D E ;
+NUMBER: N U M B E R ;
+NUMERIC_ROUNDABORT: N U M E R I C '_' R O U N D A B O R T ;
+OBJECT: O B J E C T ;
+OFFLINE: O F F L I N E ;
+OFFSET: O F F S E T ;
+OLD_ACCOUNT: O L D '_' A C C O U N T ;
+ONLINE: O N L I N E ;
+ONLY: O N L Y ;
+OPEN_EXISTING: O P E N '_' E X I S T I N G ;
+OPTIMISTIC: O P T I M I S T I C ;
+OPTIMIZE: O P T I M I Z E ;
+OUT: O U T ;
+OUTPUT: O U T P U T ;
+OVERRIDE: O V E R R I D E ;
+OWNER: O W N E R ;
+OWNERSHIP: O W N E R S H I P ;
+PAGE_VERIFY: P A G E '_' V E R I F Y ;
+PARAMETERIZATION: P A R A M E T E R I Z A T I O N ;
+PARTITION: P A R T I T I O N ;
+PARTITIONS: P A R T I T I O N S ;
+PARTNER: P A R T N E R ;
+PATH: P A T H ;
+PERCENT_RANK: P E R C E N T '_' R A N K ;
+PERCENTILE_CONT: P E R C E N T I L E '_' C O N T ;
+PERCENTILE_DISC: P E R C E N T I L E '_' D I S C ;
+POISON_MESSAGE_HANDLING: P O I S O N '_' M E S S A G E '_' H A N D L I N G ;
+POOL: P O O L ;
+PORT: P O R T ;
+PRECEDING: P R E C E D I N G ;
+PRIMARY_ROLE: P R I M A R Y '_' R O L E ;
+PRIOR: P R I O R ;
+PRIORITY: P R I O R I T Y ;
+PRIORITY_LEVEL: P R I O R I T Y '_' L E V E L ;
+PRIVATE: P R I V A T E ;
+PRIVATE_KEY: P R I V A T E '_' K E Y ;
+PRIVILEGES: P R I V I L E G E S ;
+PROCEDURE_NAME: P R O C E D U R E '_' N A M E ;
+PROPERTY: P R O P E R T Y ;
+PROVIDER: P R O V I D E R ;
+PROVIDER_KEY_NAME: P R O V I D E R '_' K E Y '_' N A M E ;
+QUERY: Q U E R Y ;
+QUEUE: Q U E U E ;
+QUEUE_DELAY: Q U E U E '_' D E L A Y ;
+QUOTED_IDENTIFIER: Q U O T E D '_' I D E N T I F I E R ;
+RANGE: R A N G E ;
+RANK: R A N K ;
+RC2: R C '2' ;
+RC4: R C '4' ;
+RC4_128: R C '4_128' ;
+READ_COMMITTED_SNAPSHOT: R E A D '_' C O M M I T T E D '_' S N A P S H O T ;
+READ_ONLY: R E A D '_' O N L Y ;
+READ_ONLY_ROUTING_LIST: R E A D '_' O N L Y '_' R O U T I N G '_' L I S T ;
+READ_WRITE: R E A D '_' W R I T E ;
+READONLY: R E A D O N L Y ;
+READWRITE: R E A D W R I T E ;
+REBUILD: R E B U I L D ;
+RECEIVE: R E C E I V E ;
+RECOMPILE: R E C O M P I L E ;
+RECOVERY: R E C O V E R Y ;
+RECURSIVE_TRIGGERS: R E C U R S I V E '_' T R I G G E R S ;
+RELATIVE: R E L A T I V E ;
+REMOTE: R E M O T E ;
+REMOTE_SERVICE_NAME: R E M O T E '_' S E R V I C E '_' N A M E ;
+REMOVE: R E M O V E ;
+REORGANIZE: R E O R G A N I Z E ;
+REPEATABLE: R E P E A T A B L E ;
+REPLICA: R E P L I C A ;
+REQUEST_MAX_CPU_TIME_SEC: R E Q U E S T '_' M A X '_' C P U '_' T I M E '_' S E C ;
+REQUEST_MAX_MEMORY_GRANT_PERCENT: R E Q U E S T '_' M A X '_' M E M O R Y '_' G R A N T '_' P E R C E N T ;
+REQUEST_MEMORY_GRANT_TIMEOUT_SEC: R E Q U E S T '_' M E M O R Y '_' G R A N T '_' T I M E O U T '_' S E C ;
+REQUIRED_SYNCHRONIZED_SECONDARIES_TO_COMMIT : R E Q U I R E D '_' S Y N C H R O N I Z E D '_' S E C O N D A R I E S '_' T O '_' C O M M I T ;
+RESERVE_DISK_SPACE: R E S E R V E '_' D I S K '_' S P A C E ;
+RESOURCE: R E S O U R C E ;
+RESOURCE_MANAGER_LOCATION: R E S O U R C E '_' M A N A G E R '_' L O C A T I O N ;
+RESTRICTED_USER: R E S T R I C T E D '_' U S E R ;
+RETENTION: R E T E N T I O N ;
+ROBUST: R O B U S T ;
+ROOT: R O O T ;
+ROUTE: R O U T E ;
+ROW: R O W ;
+ROW_NUMBER: R O W '_' N U M B E R ;
+ROWGUID: R O W G U I D ;
+ROWS: R O W S ;
+SAMPLE: S A M P L E ;
+SCHEMABINDING: S C H E M A B I N D I N G ;
+SCOPED: S C O P E D ;
+SCROLL: S C R O L L ;
+SCROLL_LOCKS: S C R O L L '_' L O C K S ;
+SEARCH: S E A R C H ;
+SECONDARY: S E C O N D A R Y ;
+SECONDARY_ONLY: S E C O N D A R Y '_' O N L Y ;
+SECONDARY_ROLE: S E C O N D A R Y '_' R O L E ;
+SECONDS: S E C O N D S ;
+SECRET: S E C R E T ;
+SECURABLES: S E C U R A B L E S ;
+SECURITY: S E C U R I T Y ;
+SECURITY_LOG: S E C U R I T Y '_' L O G ;
+SEEDING_MODE: S E E D I N G '_' M O D E ;
+SELF: S E L F ;
+SEMI_SENSITIVE: S E M I '_' S E N S I T I V E ;
+SEND: S E N D ;
+SENT: S E N T ;
+SEQUENCE: S E Q U E N C E ;
+SERIALIZABLE: S E R I A L I Z A B L E ;
+SESSION_TIMEOUT: S E S S I O N '_' T I M E O U T ;
+SETERROR: S E T E R R O R ;
+SHARE: S H A R E ;
+SHOWPLAN: S H O W P L A N ;
+SIGNATURE: S I G N A T U R E ;
+SIMPLE: S I M P L E ;
+SINGLE_USER: S I N G L E '_' U S E R ;
+SIZE: S I Z E ;
+SMALLINT: S M A L L I N T ;
+SNAPSHOT: S N A P S H O T ;
+SPATIAL_WINDOW_MAX_CELLS: S P A T I A L '_' W I N D O W '_' M A X '_' C E L L S ;
+STANDBY: S T A N D B Y ;
+START_DATE: S T A R T '_' D A T E ;
+STATIC: S T A T I C ;
+STATS_STREAM: S T A T S '_' S T R E A M ;
+STATUS: S T A T U S ;
+STATUSONLY: S T A T U S O N L Y ;
+STDEV: S T D E V ;
+STDEVP: S T D E V P ;
+STOPLIST: S T O P L I S T ;
+STRING_AGG: S T R I N G '_' A G G ;
+STUFF: S T U F F ;
+SUBJECT: S U B J E C T ;
+SUBSCRIBE: S U B S C R I B E ;
+SUBSCRIPTION: S U B S C R I P T I O N ;
+SUM: S U M ;
+SUSPEND: S U S P E N D ;
+SYMMETRIC: S Y M M E T R I C ;
+SYNCHRONOUS_COMMIT: S Y N C H R O N O U S '_' C O M M I T ;
+SYNONYM: S Y N O N Y M ;
+SYSTEM: S Y S T E M ;
+TAKE: T A K E ;
+TARGET_RECOVERY_TIME: T A R G E T '_' R E C O V E R Y '_' T I M E ;
+TB: T B ;
+TEXTIMAGE_ON: T E X T I M A G E '_' O N ;
+THROW: T H R O W ;
+TIES: T I E S ;
+TIME: T I M E ;
+TIMEOUT: T I M E O U T ;
+TIMER: T I M E R ;
+TINYINT: T I N Y I N T ;
+TORN_PAGE_DETECTION: T O R N '_' P A G E '_' D E T E C T I O N ;
+TRACKING: T R A C K I N G ;
+TRANSFORM_NOISE_WORDS: T R A N S F O R M '_' N O I S E '_' W O R D S ;
+TRIPLE_DES: T R I P L E '_' D E S ;
+TRIPLE_DES_3KEY: T R I P L E '_' D E S '_' '3' K E Y ;
+TRUSTWORTHY: T R U S T W O R T H Y ;
+TRY: T R Y ;
+TSQL: T S Q L ;
+TWO_DIGIT_YEAR_CUTOFF: T W O '_' D I G I T '_' Y E A R '_' C U T O F F ;
+TYPE: T Y P E ;
+TYPE_WARNING: T Y P E '_' W A R N I N G ;
+UNBOUNDED: U N B O U N D E D ;
+UNCOMMITTED: U N C O M M I T T E D ;
+UNKNOWN: U N K N O W N ;
+UNLIMITED: U N L I M I T E D ;
+UNMASK: U N M A S K ;
+UOW: U O W ;
+USING: U S I N G ;
+VALID_XML: V A L I D '_' X M L ;
+VALIDATION: V A L I D A T I O N ;
+VALUE: V A L U E ;
+VAR: V A R ;
+VARBINARY_KEYWORD: V A R B I N A R Y ;
+VARP: V A R P ;
+VIEW_METADATA: V I E W '_' M E T A D A T A ;
+VIEWS: V I E W S ;
+WAIT: W A I T ;
+WELL_FORMED_XML: W E L L '_' F O R M E D '_' X M L ;
+WITHOUT_ARRAY_WRAPPER: W I T H O U T '_' A R R A Y '_' W R A P P E R ;
+WORK: W O R K ;
+WORKLOAD: W O R K L O A D ;
+XML: X M L ;
+XMLDATA: X M L D A T A ;
+XMLNAMESPACES: X M L N A M E S P A C E S ;
+XMLSCHEMA: X M L S C H E M A ;
+XSINIL: X S I N I L ;
+ZONE: Z O N E ;
+DOLLAR_ACTION: '$' A C T I O N ;
+
//More keywords
-ABORT_AFTER_WAIT: 'ABORT_AFTER_WAIT';
-ABSENT: 'ABSENT';
-ADMINISTER: 'ADMINISTER';
-AES: 'AES';
-ALLOW_CONNECTIONS: 'ALLOW_CONNECTIONS';
-ALLOW_MULTIPLE_EVENT_LOSS: 'ALLOW_MULTIPLE_EVENT_LOSS';
-ALLOW_SINGLE_EVENT_LOSS: 'ALLOW_SINGLE_EVENT_LOSS';
-ANONYMOUS: 'ANONYMOUS';
-APPEND: 'APPEND';
-APPLICATION: 'APPLICATION';
-ASYMMETRIC: 'ASYMMETRIC';
-ASYNCHRONOUS_COMMIT: 'ASYNCHRONOUS_COMMIT';
-AUTHENTICATE: 'AUTHENTICATE';
-AUTHENTICATION: 'AUTHENTICATION';
-AUTOMATED_BACKUP_PREFERENCE: 'AUTOMATED_BACKUP_PREFERENCE';
-AUTOMATIC: 'AUTOMATIC';
-AVAILABILITY_MODE: 'AVAILABILITY_MODE';
-BEFORE: 'BEFORE';
-BLOCK: 'BLOCK';
-BLOCKERS: 'BLOCKERS';
-BLOCKSIZE: 'BLOCKSIZE';
-BLOCKING_HIERARCHY: 'BLOCKING_HIERARCHY';
-BUFFER: 'BUFFER';
-BUFFERCOUNT: 'BUFFERCOUNT';
-CACHE: 'CACHE';
-CALLED: 'CALLED';
-CERTIFICATE: 'CERTIFICATE';
-CHANGETABLE: 'CHANGETABLE';
-CHANGES: 'CHANGES';
-CHECK_POLICY: 'CHECK_POLICY';
-CHECK_EXPIRATION: 'CHECK_EXPIRATION';
-CLASSIFIER_FUNCTION: 'CLASSIFIER_FUNCTION';
-CLUSTER: 'CLUSTER';
-COMPRESSION: 'COMPRESSION';
-CONNECT: 'CONNECT';
-CONNECTION: 'CONNECTION';
-CONFIGURATION: 'CONFIGURATION';
-CONTAINMENT: 'CONTAINMENT';
-CONTEXT: 'CONTEXT';
-CONTINUE_AFTER_ERROR: 'CONTINUE_AFTER_ERROR';
-CONTRACT: 'CONTRACT';
-CONTRACT_NAME: 'CONTRACT_NAME';
-CONVERSATION: 'CONVERSATION';
-COPY_ONLY: 'COPY_ONLY';
-CYCLE: 'CYCLE';
-DATA_COMPRESSION: 'DATA_COMPRESSION';
-DATA_SOURCE: 'DATA_SOURCE';
-DATABASE_MIRRORING: 'DATABASE_MIRRORING';
-DATASPACE: 'DATASPACE';
-DDL: 'DDL';
-DEFAULT_DATABASE: 'DEFAULT_DATABASE';
-DEFAULT_SCHEMA: 'DEFAULT_SCHEMA';
-DIAGNOSTICS: 'DIAGNOSTICS';
-DIFFERENTIAL: 'DIFFERENTIAL';
-DTC_SUPPORT: 'DTC_SUPPORT';
-ENABLED: 'ENABLED';
-ENDPOINT: 'ENDPOINT';
-ERROR: 'ERROR';
-EVENT: 'EVENT';
-EVENTDATA: 'EVENTDATA' '(' ')';
-EVENT_RETENTION_MODE: 'EVENT_RETENTION_MODE';
-EXECUTABLE_FILE: 'EXECUTABLE_FILE';
-EXPIREDATE: 'EXPIREDATE';
-EXTENSION: 'EXTENSION';
-EXTERNAL_ACCESS: 'EXTERNAL_ACCESS';
-FAILOVER: 'FAILOVER';
-FAILURECONDITIONLEVEL: 'FAILURECONDITIONLEVEL';
-FAN_IN: 'FAN_IN';
-FILE_SNAPSHOT: 'FILE_SNAPSHOT';
-FORCESEEK: 'FORCESEEK';
-FORCE_SERVICE_ALLOW_DATA_LOSS: 'FORCE_SERVICE_ALLOW_DATA_LOSS';
-GET: 'GET';
-GOVERNOR: 'GOVERNOR';
-HASHED: 'HASHED';
-HEALTHCHECKTIMEOUT: 'HEALTHCHECKTIMEOUT';
-IIF: 'IIF';
-IO: 'IO';
-INCLUDE: 'INCLUDE';
-INCREMENT: 'INCREMENT';
-INFINITE: 'INFINITE';
-INIT: 'INIT';
-INSTEAD: 'INSTEAD';
-ISNULL: 'ISNULL';
-KERBEROS: 'KERBEROS';
-KEY_PATH: 'KEY_PATH';
-KEY_STORE_PROVIDER_NAME: 'KEY_STORE_PROVIDER_NAME';
-LANGUAGE: 'LANGUAGE';
-LIBRARY: 'LIBRARY';
-LIFETIME: 'LIFETIME';
-LINKED: 'LINKED';
-LINUX: 'LINUX';
-LISTENER_IP: 'LISTENER_IP';
-LISTENER_PORT: 'LISTENER_PORT';
-LOCAL_SERVICE_NAME: 'LOCAL_SERVICE_NAME';
-LOG: 'LOG';
-MASK: 'MASK';
-MATCHED: 'MATCHED';
-MASTER: 'MASTER';
-MAX_MEMORY: 'MAX_MEMORY';
-MAXTRANSFER: 'MAXTRANSFER';
-MAXVALUE: 'MAXVALUE';
-MAX_DISPATCH_LATENCY: 'MAX_DISPATCH_LATENCY';
-MAX_DURATION: 'MAX_DURATION';
-MAX_EVENT_SIZE: 'MAX_EVENT_SIZE';
-MAX_SIZE: 'MAX_SIZE';
-MAX_OUTSTANDING_IO_PER_VOLUME: 'MAX_OUTSTANDING_IO_PER_VOLUME';
-MEDIADESCRIPTION: 'MEDIADESCRIPTION';
-MEDIANAME: 'MEDIANAME';
-MEMBER: 'MEMBER';
-MEMORY_PARTITION_MODE: 'MEMORY_PARTITION_MODE';
-MESSAGE_FORWARDING: 'MESSAGE_FORWARDING';
-MESSAGE_FORWARD_SIZE: 'MESSAGE_FORWARD_SIZE';
-MINVALUE: 'MINVALUE';
-MIRROR: 'MIRROR';
-MUST_CHANGE: 'MUST_CHANGE';
-NOFORMAT: 'NOFORMAT';
-NOINIT: 'NOINIT';
-NONE: 'NONE';
-NOREWIND: 'NOREWIND';
-NOSKIP: 'NOSKIP';
-NOUNLOAD: 'NOUNLOAD';
-NO_CHECKSUM: 'NO_CHECKSUM';
-NO_COMPRESSION: 'NO_COMPRESSION';
-NO_EVENT_LOSS: 'NO_EVENT_LOSS';
-NOTIFICATION: 'NOTIFICATION';
-NTLM: 'NTLM';
-OLD_PASSWORD: 'OLD_PASSWORD';
-ON_FAILURE: 'ON_FAILURE';
-OPERATIONS: 'OPERATIONS';
-PAGE: 'PAGE';
-PARAM_NODE: 'PARAM_NODE';
-PARTIAL: 'PARTIAL';
-PASSWORD: 'PASSWORD';
-PERMISSION_SET: 'PERMISSION_SET';
-PER_CPU: 'PER_CPU';
-PER_DB: 'PER_DB';
-PER_NODE: 'PER_NODE';
-PERSISTED: 'PERSISTED';
-PLATFORM: 'PLATFORM';
-POLICY: 'POLICY';
-PREDICATE: 'PREDICATE';
-PROCESS: 'PROCESS';
-PROFILE: 'PROFILE';
-PYTHON: 'PYTHON';
-R: 'R';
-READ_WRITE_FILEGROUPS: 'READ_WRITE_FILEGROUPS';
-REGENERATE: 'REGENERATE';
-RELATED_CONVERSATION: 'RELATED_CONVERSATION';
-RELATED_CONVERSATION_GROUP: 'RELATED_CONVERSATION_GROUP';
-REQUIRED: 'REQUIRED';
-RESET: 'RESET';
-RESOURCES: 'RESOURCES';
-RESTART: 'RESTART';
-RESUME: 'RESUME';
-RETAINDAYS: 'RETAINDAYS';
-RETURNS: 'RETURNS';
-REWIND: 'REWIND';
-ROLE: 'ROLE';
-RSA_512: 'RSA_512';
-RSA_1024: 'RSA_1024';
-RSA_2048: 'RSA_2048';
-RSA_3072: 'RSA_3072';
-RSA_4096: 'RSA_4096';
-SAFETY: 'SAFETY';
-SAFE: 'SAFE';
-SCHEDULER: 'SCHEDULER';
-SCHEME: 'SCHEME';
-SCRIPT: 'SCRIPT';
-SERVER: 'SERVER';
-SERVICE: 'SERVICE';
-SERVICE_BROKER: 'SERVICE_BROKER';
-SERVICE_NAME: 'SERVICE_NAME';
-SESSION: 'SESSION';
-SETTINGS: 'SETTINGS';
-SHRINKLOG: 'SHRINKLOG';
-SID: 'SID';
-SKIP_KEYWORD: 'SKIP';
-SOFTNUMA: 'SOFTNUMA';
-SOURCE: 'SOURCE';
-SPECIFICATION: 'SPECIFICATION';
-SPLIT: 'SPLIT';
-SQL: 'SQL';
-SQLDUMPERFLAGS: 'SQLDUMPERFLAGS';
-SQLDUMPERPATH: 'SQLDUMPERPATH';
-SQLDUMPERTIMEOUT: 'SQLDUMPERTIMEOUTS';
-STATE: 'STATE';
-STATS: 'STATS';
-START: 'START';
-STARTED: 'STARTED';
-STARTUP_STATE: 'STARTUP_STATE';
-STOP: 'STOP';
-STOPPED: 'STOPPED';
-STOP_ON_ERROR: 'STOP_ON_ERROR';
-SUPPORTED: 'SUPPORTED';
-SWITCH: 'SWITCH';
-TAPE: 'TAPE';
-TARGET: 'TARGET';
-TCP: 'TCP';
-TRACE: 'TRACE';
-TRACK_CAUSALITY: 'TRACK_CAUSALITY';
-TRANSFER: 'TRANSFER';
-UNCHECKED: 'UNCHECKED';
-UNLOCK: 'UNLOCK';
-UNSAFE: 'UNSAFE';
-URL: 'URL';
-USED: 'USED';
-VERBOSELOGGING: 'VERBOSELOGGING';
-VISIBILITY: 'VISIBILITY';
-WAIT_AT_LOW_PRIORITY: 'WAIT_AT_LOW_PRIORITY';
-WINDOWS: 'WINDOWS';
-WITHOUT: 'WITHOUT';
-WITNESS: 'WITNESS';
-XACT_ABORT: 'XACT_ABORT';
+ABORT_AFTER_WAIT: A B O R T '_' A F T E R '_' W A I T ;
+ABSENT: A B S E N T ;
+ADMINISTER: A D M I N I S T E R ;
+AES: A E S ;
+ALLOW_CONNECTIONS: A L L O W '_' C O N N E C T I O N S ;
+ALLOW_MULTIPLE_EVENT_LOSS: A L L O W '_' M U L T I P L E '_' E V E N T '_' L O S S ;
+ALLOW_SINGLE_EVENT_LOSS: A L L O W '_' S I N G L E '_' E V E N T '_' L O S S ;
+ANONYMOUS: A N O N Y M O U S ;
+APPEND: A P P E N D ;
+APPLICATION: A P P L I C A T I O N ;
+ASYMMETRIC: A S Y M M E T R I C ;
+ASYNCHRONOUS_COMMIT: A S Y N C H R O N O U S '_' C O M M I T ;
+AUTHENTICATE: A U T H E N T I C A T E ;
+AUTHENTICATION: A U T H E N T I C A T I O N ;
+AUTOMATED_BACKUP_PREFERENCE: A U T O M A T E D '_' B A C K U P '_' P R E F E R E N C E ;
+AUTOMATIC: A U T O M A T I C ;
+AVAILABILITY_MODE: A V A I L A B I L I T Y '_' M O D E ;
+BEFORE: B E F O R E ;
+BLOCK: B L O C K ;
+BLOCKERS: B L O C K E R S ;
+BLOCKSIZE: B L O C K S I Z E ;
+BLOCKING_HIERARCHY: B L O C K I N G '_' H I E R A R C H Y ;
+BUFFER: B U F F E R ;
+BUFFERCOUNT: B U F F E R C O U N T ;
+CACHE: C A C H E ;
+CALLED: C A L L E D ;
+CERTIFICATE: C E R T I F I C A T E ;
+CHANGETABLE: C H A N G E T A B L E ;
+CHANGES: C H A N G E S ;
+CHECK_POLICY: C H E C K '_' P O L I C Y ;
+CHECK_EXPIRATION: C H E C K '_' E X P I R A T I O N ;
+CLASSIFIER_FUNCTION: C L A S S I F I E R '_' F U N C T I O N ;
+CLUSTER: C L U S T E R ;
+COMPRESSION: C O M P R E S S I O N ;
+CONNECT: C O N N E C T ;
+CONNECTION: C O N N E C T I O N ;
+CONFIGURATION: C O N F I G U R A T I O N ;
+CONTAINMENT: C O N T A I N M E N T ;
+CONTEXT: C O N T E X T ;
+CONTINUE_AFTER_ERROR: C O N T I N U E '_' A F T E R '_' E R R O R ;
+CONTRACT: C O N T R A C T ;
+CONTRACT_NAME: C O N T R A C T '_' N A M E ;
+CONVERSATION: C O N V E R S A T I O N ;
+COPY_ONLY: C O P Y '_' O N L Y ;
+CYCLE: C Y C L E ;
+DATA_COMPRESSION: D A T A '_' C O M P R E S S I O N ;
+DATA_SOURCE: D A T A '_' S O U R C E ;
+DATABASE_MIRRORING: D A T A B A S E '_' M I R R O R I N G ;
+DATASPACE: D A T A S P A C E ;
+DDL: D D L ;
+DEFAULT_DATABASE: D E F A U L T '_' D A T A B A S E ;
+DEFAULT_SCHEMA: D E F A U L T '_' S C H E M A ;
+DIAGNOSTICS: D I A G N O S T I C S ;
+DIFFERENTIAL: D I F F E R E N T I A L ;
+DTC_SUPPORT: D T C '_' S U P P O R T ;
+ENABLED: E N A B L E D ;
+ENDPOINT: E N D P O I N T ;
+ERROR: E R R O R ;
+EVENT: E V E N T ;
+EVENTDATA: E V E N T D A T A ( ) ;
+EVENT_RETENTION_MODE: E V E N T '_' R E T E N T I O N '_' M O D E ;
+EXECUTABLE_FILE: E X E C U T A B L E '_' F I L E ;
+EXPIREDATE: E X P I R E D A T E ;
+EXTENSION: E X T E N S I O N ;
+EXTERNAL_ACCESS: E X T E R N A L '_' A C C E S S ;
+FAILOVER: F A I L O V E R ;
+FAILURECONDITIONLEVEL: F A I L U R E C O N D I T I O N L E V E L ;
+FAN_IN: F A N '_' I N ;
+FILE_SNAPSHOT: F I L E '_' S N A P S H O T ;
+FORCESEEK: F O R C E S E E K ;
+FORCE_SERVICE_ALLOW_DATA_LOSS: F O R C E '_' S E R V I C E '_' A L L O W '_' D A T A '_' L O S S ;
+GET: G E T ;
+GOVERNOR: G O V E R N O R ;
+HASHED: H A S H E D ;
+HEALTHCHECKTIMEOUT: H E A L T H C H E C K T I M E O U T ;
+IIF: I I F ;
+IO: I O ;
+INCLUDE: I N C L U D E ;
+INCREMENT: I N C R E M E N T ;
+INFINITE: I N F I N I T E ;
+INIT: I N I T ;
+INSTEAD: I N S T E A D ;
+ISNULL: I S N U L L ;
+KERBEROS: K E R B E R O S ;
+KEY_PATH: K E Y '_' P A T H ;
+KEY_STORE_PROVIDER_NAME: K E Y '_' S T O R E '_' P R O V I D E R '_' N A M E ;
+LANGUAGE: L A N G U A G E ;
+LIBRARY: L I B R A R Y ;
+LIFETIME: L I F E T I M E ;
+LINKED: L I N K E D ;
+LINUX: L I N U X ;
+LISTENER_IP: L I S T E N E R '_' I P ;
+LISTENER_PORT: L I S T E N E R '_' P O R T ;
+LOCAL_SERVICE_NAME: L O C A L '_' S E R V I C E '_' N A M E ;
+LOG: L O G ;
+MASK: M A S K ;
+MATCHED: M A T C H E D ;
+MASTER: M A S T E R ;
+MAX_MEMORY: M A X '_' M E M O R Y ;
+MAXTRANSFER: M A X T R A N S F E R ;
+MAXVALUE: M A X V A L U E ;
+MAX_DISPATCH_LATENCY: M A X '_' D I S P A T C H '_' L A T E N C Y ;
+MAX_DURATION: M A X '_' D U R A T I O N ;
+MAX_EVENT_SIZE: M A X '_' E V E N T '_' S I Z E ;
+MAX_SIZE: M A X '_' S I Z E ;
+MAX_OUTSTANDING_IO_PER_VOLUME: M A X '_' O U T S T A N D I N G '_' I O '_' P E R '_' V O L U M E ;
+MEDIADESCRIPTION: M E D I A D E S C R I P T I O N ;
+MEDIANAME: M E D I A N A M E ;
+MEMBER: M E M B E R ;
+MEMORY_PARTITION_MODE: M E M O R Y '_' P A R T I T I O N '_' M O D E ;
+MESSAGE_FORWARDING: M E S S A G E '_' F O R W A R D I N G ;
+MESSAGE_FORWARD_SIZE: M E S S A G E '_' F O R W A R D '_' S I Z E ;
+MINVALUE: M I N V A L U E ;
+MIRROR: M I R R O R ;
+MUST_CHANGE: M U S T '_' C H A N G E ;
+NOFORMAT: N O F O R M A T ;
+NOINIT: N O I N I T ;
+NONE: N O N E ;
+NOREWIND: N O R E W I N D ;
+NOSKIP: N O S K I P ;
+NOUNLOAD: N O U N L O A D ;
+NO_CHECKSUM: N O '_' C H E C K S U M ;
+NO_COMPRESSION: N O '_' C O M P R E S S I O N ;
+NO_EVENT_LOSS: N O '_' E V E N T '_' L O S S ;
+NOTIFICATION: N O T I F I C A T I O N ;
+NTLM: N T L M ;
+OLD_PASSWORD: O L D '_' P A S S W O R D ;
+ON_FAILURE: O N '_' F A I L U R E ;
+OPERATIONS: O P E R A T I O N S ;
+PAGE: P A G E ;
+PARAM_NODE: P A R A M '_' N O D E ;
+PARTIAL: P A R T I A L ;
+PASSWORD: P A S S W O R D ;
+PERMISSION_SET: P E R M I S S I O N '_' S E T ;
+PER_CPU: P E R '_' C P U ;
+PER_DB: P E R '_' D B ;
+PER_NODE: P E R '_' N O D E ;
+PERSISTED: P E R S I S T E D ;
+PLATFORM: P L A T F O R M ;
+POLICY: P O L I C Y ;
+PREDICATE: P R E D I C A T E ;
+PROCESS: P R O C E S S ;
+PROFILE: P R O F I L E ;
+PYTHON: P Y T H O N ;
+R_: R ;
+READ_WRITE_FILEGROUPS: R E A D '_' W R I T E '_' F I L E G R O U P S ;
+REGENERATE: R E G E N E R A T E ;
+RELATED_CONVERSATION: R E L A T E D '_' C O N V E R S A T I O N ;
+RELATED_CONVERSATION_GROUP: R E L A T E D '_' C O N V E R S A T I O N '_' G R O U P ;
+REQUIRED: R E Q U I R E D ;
+RESET: R E S E T ;
+RESOURCES: R E S O U R C E S ;
+RESTART: R E S T A R T ;
+RESUME: R E S U M E ;
+RETAINDAYS: R E T A I N D A Y S ;
+RETURNS: R E T U R N S ;
+REWIND: R E W I N D ;
+ROLE: R O L E ;
+RSA_512: R S A '_512';
+RSA_1024: R S A '_1024';
+RSA_2048: R S A '_2048';
+RSA_3072: R S A '_3072';
+RSA_4096: R S A '_4096';
+SAFETY: S A F E T Y ;
+SAFE: S A F E ;
+SCHEDULER: S C H E D U L E R ;
+SCHEME: S C H E M E ;
+SCRIPT: S C R I P T ;
+SERVER: S E R V E R ;
+SERVICE: S E R V I C E ;
+SERVICE_BROKER: S E R V I C E '_' B R O K E R ;
+SERVICE_NAME: S E R V I C E '_' N A M E ;
+SESSION: S E S S I O N ;
+SETTINGS: S E T T I N G S ;
+SHRINKLOG: S H R I N K L O G ;
+SID: S I D ;
+SKIP_KEYWORD: S K I P ;
+SOFTNUMA: S O F T N U M A ;
+SOURCE: S O U R C E ;
+SPECIFICATION: S P E C I F I C A T I O N ;
+SPLIT: S P L I T ;
+SQL: S Q L ;
+SQLDUMPERFLAGS: S Q L D U M P E R F L A G S ;
+SQLDUMPERPATH: S Q L D U M P E R P A T H ;
+SQLDUMPERTIMEOUT: S Q L D U M P E R T I M E O U T S ;
+STATE: S T A T E ;
+STATS: S T A T S ;
+START: S T A R T ;
+STARTED: S T A R T E D ;
+STARTUP_STATE: S T A R T U P '_' S T A T E ;
+STOP: S T O P ;
+STOPPED: S T O P P E D ;
+STOP_ON_ERROR: S T O P '_' O N '_' E R R O R ;
+SUPPORTED: S U P P O R T E D ;
+SWITCH: S W I T C H ;
+TAPE: T A P E ;
+TARGET: T A R G E T ;
+TCP: T C P ;
+TRACE: T R A C E ;
+TRACK_CAUSALITY: T R A C K '_' C A U S A L I T Y ;
+TRANSFER: T R A N S F E R ;
+UNCHECKED: U N C H E C K E D ;
+UNLOCK: U N L O C K ;
+UNSAFE: U N S A F E ;
+URL: U R L ;
+USED: U S E D ;
+VERBOSELOGGING: V E R B O S E L O G G I N G ;
+VISIBILITY: V I S I B I L I T Y ;
+WAIT_AT_LOW_PRIORITY: W A I T '_' A T '_' L O W '_' P R I O R I T Y ;
+WINDOWS: W I N D O W S ;
+WITHOUT: W I T H O U T ;
+WITNESS: W I T N E S S ;
+XACT_ABORT: X A C T '_' A B O R T ;
+PAUSE : P A U S E ;
+ABORT: A B O R T ;
+ANSI_DEFAULTS: A N S I '_' D E F A U L T S ;
+ANSI_NULL_DFLT_OFF : A N S I '_' N U L L '_' D F L T '_' O F F ;
+ANSI_NULL_DFLT_ON : A N S I '_' N U L L '_' D F L T '_' O N ;
+ARITHIGNORE : A R I T H I G N O R E ;
+FMTONLY : F M T O N L Y ;
+FORCEPLAN : F O R C E P L A N ;
+IMPLICIT_TRANSACTIONS : I M P L I C I T '_' T R A N S A C T I O N S ;
+PARSEONLY : P A R S E O N L Y ;
+NOEXEC : N O E X E C ;
+REMOTE_PROC_TRANSACTIONS: R E M O T E '_' P R O C '_' T R A N S A C T I O N S ;
+SHOWPLAN_ALL : S H O W P L A N '_' A L L ;
+SHOWPLAN_TEXT : S H O W P L A N '_' T E X T ;
+SHOWPLAN_XML : S H O W P L A N '_' X M L ;
+IPV4_ADDR : I P V '4' '_' A D D R ;
+IPV6_ADDR : I P V '6' '_' A D D R ;
+VERSION : V E R S I O N ;
+
//Build-ins:
-VARCHAR: 'VARCHAR';
-NVARCHAR: 'NVARCHAR';
+VARCHAR: V A R C H A R;
+NVARCHAR: N V A R C H A R;
SPACE: [ \t\r\n]+ -> skip;
@@ -887,13 +1013,13 @@ LINE_COMMENT: '--' ~[\r\n]* -> channel(HIDDEN);
DOUBLE_QUOTE_ID: '"' ~'"'+ '"';
SINGLE_QUOTE: '\'';
SQUARE_BRACKET_ID: '[' (~']' | ']' ']')* ']';
-LOCAL_ID: '@' ([A-Z_$@#0-9] | FullWidthLetter)*;
+LOCAL_ID: '@' ([A-Za-z_$@#0-9] | FullWidthLetter)*;
DECIMAL: DEC_DIGIT+;
-ID: ( [A-Z_#] | FullWidthLetter) ( [A-Z_#$@0-9] | FullWidthLetter )*;
+ID: ( [A-Za-z_#] | FullWidthLetter) ( [A-Za-z_#$@0-9] | FullWidthLetter )*;
STRING: 'N'? '\'' (~'\'' | '\'\'')* '\'';
-BINARY: '0' 'X' HEX_DIGIT*;
+BINARY: '0' ('X'|'x') HEX_DIGIT*;
FLOAT: DEC_DOT_DEC;
-REAL: (DECIMAL | DEC_DOT_DEC) ('E' [+-]? DEC_DIGIT+);
+REAL: (DECIMAL | DEC_DOT_DEC) (('E'|'e') [+-]? DEC_DIGIT+);
EQUAL: '=';
@@ -932,9 +1058,9 @@ BIT_OR: '|';
BIT_AND: '&';
BIT_XOR: '^';
-fragment LETTER: [A-Z_];
+fragment LETTER: [A-Za-z_];
fragment DEC_DOT_DEC: (DEC_DIGIT+ '.' DEC_DIGIT+ | DEC_DIGIT+ '.' | '.' DEC_DIGIT+);
-fragment HEX_DIGIT: [0-9A-F];
+fragment HEX_DIGIT: [0-9A-Fa-f];
fragment DEC_DIGIT: [0-9];
diff --git a/sql/tsql/TSqlParser.g4 b/sql/tsql/TSqlParser.g4
index 34287771ee..fc0aaa8112 100644
--- a/sql/tsql/TSqlParser.g4
+++ b/sql/tsql/TSqlParser.g4
@@ -1155,13 +1155,13 @@ alter_external_data_source
// https://docs.microsoft.com/en-us/sql/t-sql/statements/alter-external-library-transact-sql
alter_external_library
: ALTER EXTERNAL LIBRARY library_name=id_ (AUTHORIZATION owner_name=id_)?
- (SET|ADD) ( LR_BRACKET CONTENT EQUAL (client_library=STRING | BINARY | NONE) (COMMA PLATFORM EQUAL (WINDOWS|LINUX)? RR_BRACKET) WITH (COMMA? LANGUAGE EQUAL (R|PYTHON) | DATA_SOURCE EQUAL external_data_source_name=id_ )+ RR_BRACKET )
+ (SET|ADD) ( LR_BRACKET CONTENT EQUAL (client_library=STRING | BINARY | NONE) (COMMA PLATFORM EQUAL (WINDOWS|LINUX)? RR_BRACKET) WITH (COMMA? LANGUAGE EQUAL (R_|PYTHON) | DATA_SOURCE EQUAL external_data_source_name=id_ )+ RR_BRACKET )
;
// https://docs.microsoft.com/en-us/sql/t-sql/statements/create-external-library-transact-sql
create_external_library
: CREATE EXTERNAL LIBRARY library_name=id_ (AUTHORIZATION owner_name=id_)?
- FROM (COMMA? LR_BRACKET? (CONTENT EQUAL)? (client_library=STRING | BINARY | NONE) (COMMA PLATFORM EQUAL (WINDOWS|LINUX)? RR_BRACKET)? ) ( WITH (COMMA? LANGUAGE EQUAL (R|PYTHON) | DATA_SOURCE EQUAL external_data_source_name=id_ )+ RR_BRACKET )?
+ FROM (COMMA? LR_BRACKET? (CONTENT EQUAL)? (client_library=STRING | BINARY | NONE) (COMMA PLATFORM EQUAL (WINDOWS|LINUX)? RR_BRACKET)? ) ( WITH (COMMA? LANGUAGE EQUAL (R_|PYTHON) | DATA_SOURCE EQUAL external_data_source_name=id_ )+ RR_BRACKET )?
;
@@ -1275,7 +1275,7 @@ create_master_key_azure_sql
// https://docs.microsoft.com/en-us/sql/t-sql/statements/alter-message-type-transact-sql
alter_message_type
- : ALTER MESSAGE TYPE message_type_name=id_ VALIDATION EQUAL (NONE | EMPTY | WELL_FORMED_XML | VALID_XML WITH SCHEMA COLLECTION schema_collection_name=id_)
+ : ALTER MESSAGE TYPE message_type_name=id_ VALIDATION EQUAL (NONE | EMPTY_ | WELL_FORMED_XML | VALID_XML WITH SCHEMA COLLECTION schema_collection_name=id_)
;
@@ -1783,7 +1783,7 @@ message_statement
: CREATE MESSAGE TYPE message_type_name=id_
(AUTHORIZATION owner_name=id_)?
(VALIDATION EQUAL (NONE
- | EMPTY
+ | EMPTY_
| WELL_FORMED_XML
| VALID_XML WITH SCHEMA COLLECTION schema_collection_name=id_))
;
@@ -3145,7 +3145,7 @@ special_list
| FORCEPLAN
| IMPLICIT_TRANSACTIONS
| NOCOUNT
- | NOEXEol
+ | NOEXEC
| NUMERIC_ROUNDABORT
| PARSEONLY
| REMOTE_PROC_TRANSACTIONS
@@ -3566,6 +3566,7 @@ built_in_functions
// https://msdn.microsoft.com/en-us/library/ms187928.aspx
| CAST '(' expression AS data_type ')' #CAST
| TRY_CAST '(' expression AS data_type ')' #TRY_CAST
+ | TRY_PARSE '(' expression AS data_type ( USING STRING )? ')' #TRY_PARSE
| CONVERT '(' convert_data_type=data_type ','convert_expression=expression (',' style=expression)? ')' #CONVERT
// https://msdn.microsoft.com/en-us/library/ms189788.aspx
| CHECKSUM '(' '*' ')' #CHECKSUM
@@ -4120,7 +4121,7 @@ keyword
| DYNAMIC
| ELEMENTS
| EMERGENCY
- | EMPTY
+ | EMPTY_
| ENABLE
| ENABLE_BROKER
| ENCRYPTED_VALUE
@@ -4566,7 +4567,7 @@ keyword
| PROCESS
| PROFILE
| PYTHON
- | R
+ | R_
| READ_WRITE_FILEGROUPS
| REGENERATE
| RELATED_CONVERSATION
@@ -4634,6 +4635,7 @@ keyword
| BINARY_KEYWORD
| VARBINARY_KEYWORD
| PRECISION //For some reason this is possible to use as ID
+ | VERSION
;
// https://msdn.microsoft.com/en-us/library/ms175874.aspx
diff --git a/sql/tsql/examples/keyword_as_ident.sql b/sql/tsql/examples/keyword_as_ident.sql
new file mode 100644
index 0000000000..b2047af991
--- /dev/null
+++ b/sql/tsql/examples/keyword_as_ident.sql
@@ -0,0 +1,4 @@
+SELECT VERSION
+FROM VERSION
+WHERE VERSION = @VERSION
+go
diff --git a/sql/tsql/pom.xml b/sql/tsql/pom.xml
index b68db9d3d3..7aa0dc587c 100644
--- a/sql/tsql/pom.xml
+++ b/sql/tsql/pom.xml
@@ -39,7 +39,6 @@
false
tsql_file
TSql
- UPPER
examples/