Coder Social home page Coder Social logo

antsqlparser's People

Contributors

dependabot[bot] avatar gcer-hidenori avatar

Stargazers

 avatar

Watchers

 avatar  avatar  avatar

Forkers

sqlartist

antsqlparser's Issues

alter endpoint cannot omission LISTENER_PORT when LISTENER_IP is set

  • input
ALTER ENDPOINT [aodns-hadr] 
    AS TCP (LISTENER_IP = ALL)
GO

-- Business continuity/Always On availability groups/How-to/Configure availability group/Configure distributed availability groups
-- https://docs.microsoft.com/en-us/sql/database-engine/availability-groups/windows/configure-distributed-availability-groups?view=sql-server-ver15

291

restore not defined in parser rule.

  • input
USE [master]
RESTORE DATABASE [SQLTestDB] 
FROM DISK = N'C:\Program Files\Microsoft SQL Server\MSSQL14.MSSQLSERVER\MSSQL\Backup\SQLTestDB.bak' WITH  FILE = 1,  NOUNLOAD,  STATS = 5
GO

-- Business continuity/Backup & restore/Quickstarts/Backup & restore
-- https://docs.microsoft.com/en-us/sql/relational-databases/backup-restore/quickstart-backup-restore-database?view=sql-server-ver15

backup_database,credential_name not defined in parser rule.

  • input
BACKUP DATABASE AdventureWorks2016  
TO URL = 'https://<mystorageaccountname>.blob.core.windows.net/<mycontainername>/AdventureWorks2016.bak'   
      WITH CREDENTIAL = '<mycredentialname>'   
     ,COMPRESSION  
     ,STATS = 5;  
GO   

-- Business continuity/Backup & restore/How-to/Backup to Azure/Backup To URL
-- https://docs.microsoft.com/en-us/sql/relational-databases/backup-restore/sql-server-backup-to-url?view=sql-server-ver15

create table statement not support table_index

  • input
CREATE TABLE [dbo].[ASPStateTempSessions]
(
	[SessionId] [nvarchar](88) COLLATE Latin1_General_100_BIN2 NOT NULL,
	[Created] [datetime] NOT NULL DEFAULT (getutcdate()),
	[Expires] [datetime] NOT NULL,
	[LockDate] [datetime] NOT NULL,
	[LockDateLocal] [datetime] NOT NULL,
	[LockCookie] [int] NOT NULL,
	[Timeout] [int] NOT NULL,
	[Locked] [bit] NOT NULL,
	[SessionItemShort] [varbinary](7000) NULL,
	[SessionItemLong] [varbinary](max) NULL,
	[Flags] [int] NOT NULL DEFAULT ((0)),

INDEX [Index_Expires] NONCLUSTERED 
(
	[Expires] ASC
),
PRIMARY KEY NONCLUSTERED HASH 
(
	[SessionId]
)WITH ( BUCKET_COUNT = 33554432)
)WITH ( MEMORY_OPTIMIZED = ON , DURABILITY = SCHEMA_ONLY )
GO
  • parse error
    line 15:0 mismatched input 'INDEX' expecting ')'

GRANT VIEW SERVER STATE not support

  • list
-- Create a SQL Server login for low-priority operations  
USE master;  
CREATE LOGIN [domain_name\MAX_CPU] FROM WINDOWS;  
GRANT VIEW SERVER STATE TO [domain_name\MAX_CPU];  
GO  
-- Create a SQL Server user in AdventureWorks2012 for this login  
USE AdventureWorks2012;  
CREATE USER [domain_name\MAX_CPU] FOR LOGIN [domain_name\MAX_CPU];  
EXEC sp_addrolemember 'db_backupoperator', 'domain_name\MAX_CPU';  
GO  

-- Business continuity/Backup & restore/How-to/Configuration/Limit CPU usage by backup compression (T-SQL)
-- https://docs.microsoft.com/en-us/sql/relational-databases/backup-restore/use-resource-governor-to-limit-cpu-usage-by-backup-compression-transact-sql?view=sql-server-ver15

243

exec execute_statement_arg value not accept url

  • input
USE msdb;  
GO  
EXEC msdb.managed_backup.sp_backup_config_basic   
 @container_url = 'https://managedbackupstorage.blob.core.windows.net/backupcontainer'
GO  

-- Business continuity/Backup & restore/How-to/Backup to Azure/Managed backups/Enable
-- https://docs.microsoft.com/en-us/sql/relational-databases/backup-restore/enable-sql-server-managed-backup-to-microsoft-azure?view=sql-server-ver15

It's ok

@container_url = 'aaa'

alter database set database_option not support multi option

  • input
USE master;
GO
ALTER DATABASE AdventureWorks2012 
SET RECOVERY FULL, PAGE_VERIFY CHECKSUM;
GO

-- Database design/Databases/How-to guides/Manage/Change configuration settings
-- https://docs.microsoft.com/en-us/sql/relational-databases/databases/change-the-configuration-settings-for-a-database?view=sql-server-ver15

NATIVE_COMPILATION, SCHEMABINDING not support at create_or_alter_procedure

  • input
CREATE PROCEDURE [dbo].[TempGetStateItemExclusive3]
			@id         nvarchar(88),
            @itemShort  varbinary(7000) OUTPUT,
            @locked     bit OUTPUT,
            @lockAge    int OUTPUT,
            @lockCookie int OUTPUT,
            @actionFlags int OUTPUT
WITH NATIVE_COMPILATION, SCHEMABINDING, EXECUTE AS OWNER
AS BEGIN ATOMIC WITH ( TRANSACTION ISOLATION LEVEL = SNAPSHOT, LANGUAGE = N'us_english')
  • parse error
    line 3:33 extraneous input '(' expecting {AS, FOR, WITH, ')', ','}

create type grammer bug

perse error

CREATE TYPE [dbo].[tAppName] FROM varchar NOT NULL;

https://docs.microsoft.com/ja-jp/sql/t-sql/statements/create-type-transact-sql?view=sql-server-ver15

-- User-defined Data Type Syntax    
CREATE TYPE [ schema_name. ] type_name  
{   
    [
      FROM base_type   
      [ ( precision [ , scale ] ) ]  
      [ NULL | NOT NULL ]
    ]
    | EXTERNAL NAME assembly_name [ .class_name ]   
    | AS TABLE ( { <column_definition> | <computed_column_definition> [ ,... n ] }
      [ <table_constraint> ] [ ,... n ]    
      [ <table_index> ] [ ,... n ] } )
 
} [ ; ]  

TSqlParser.g4

  • bug
create_type
    : CREATE TYPE name = simple_name
      (FROM data_type default_value)?
      (AS TABLE LR_BRACKET column_def_table_constraints RR_BRACKET)?
    ;
  • fix
create_type
    : CREATE TYPE name = simple_name
      (FROM data_type null_notnull)?
      (AS TABLE LR_BRACKET column_def_table_constraints RR_BRACKET)?
    ;

insert statement not support hierarchyid

  • input
CREATE TABLE Org_T3  
(  
   EmployeeId hierarchyid PRIMARY KEY,  
   ParentId AS EmployeeId.GetAncestor(1) PERSISTED    
      REFERENCES Org_T3(EmployeeId),  
   LastChild hierarchyid,   
   EmployeeName nvarchar(50)  
)  
GO  

-- Database design/Hierarchical Data
-- https://docs.microsoft.com/en-us/sql/relational-databases/hierarchical-data-sql-server?view=sql-server-ver15

ALTER AVAILABILITY GROUP WITH option can only single option

  • input
    ALTER AVAILABILITY GROUP group_name MODIFY REPLICA ON 'server_name'
    WITH ( AVAILABILITY_MODE = ASYNCHRONOUS_COMMIT , FAILOVER_MODE = MANUAL );

-- Business continuity/Always On availability groups/How-to/Configure availability group/Change replica availability
-- https://docs.microsoft.com/en-us/sql/database-engine/availability-groups/windows/change-the-availability-mode-of-an-availability-replica-sql-server?view=sql-server-ver15


274

insert statement not support hierarchyid::GetRoot()

  • input
INSERT Org_T2 (EmployeeId, EmployeeName)   
    VALUES(hierarchyid::GetRoot(), 'David') ;  
GO  
AddEmp 0x , 'Sariya'  
GO  
AddEmp 0x58 , 'Mary'  
GO  
SELECT * FROM Org_T2  

-- Database design/Hierarchical Data
-- https://docs.microsoft.com/en-us/sql/relational-databases/hierarchical-data-sql-server?view=sql-server-ver15

select statement not support hierarchyid methods

  • input
USE AdventureWorks ;  
GO  
  
CREATE TABLE Org_T1  
   (  
    EmployeeId hierarchyid PRIMARY KEY,  
    OrgLevel AS EmployeeId.GetLevel(),  
    EmployeeName nvarchar(50)   
   ) ;  
GO  
  
CREATE INDEX Org_BreadthFirst ON Org_T1(OrgLevel, EmployeeId);
GO  
  
CREATE PROCEDURE AddEmp(@mgrid hierarchyid, @EmpName nvarchar(50) )   
AS  
BEGIN  
    DECLARE @last_child hierarchyid;
INS_EMP:   
    SELECT @last_child = MAX(EmployeeId) FROM Org_T1   
        WHERE EmployeeId.GetAncestor(1) = @mgrid;
    INSERT INTO Org_T1 (EmployeeId, EmployeeName)  
        SELECT @mgrid.GetDescendant(@last_child, NULL), @EmpName;
-- On error, return to INS_EMP to recompute @last_child  
IF @@error <> 0 GOTO INS_EMP   
END ;  
GO  

-- Database design/Hierarchical Data
-- https://docs.microsoft.com/en-us/sql/relational-databases/hierarchical-data-sql-server?view=sql-server-ver15

backup_set_name cannot accept -

  • input
BACKUP DATABASE [SQLTestDB] 
TO DISK = N'C:\Program Files\Microsoft SQL Server\MSSQL14.MSSQLSERVER\MSSQL\Backup\SQLTestDB.bak' 
WITH NOFORMAT, NOINIT,  
NAME = N'SQLTestDB-Full Database Backup', SKIP, NOREWIND, NOUNLOAD,  STATS = 10
GO

-- Business continuity/Backup & restore/Quickstarts/Backup & restore
-- https://docs.microsoft.com/en-us/sql/relational-databases/backup-restore/quickstart-backup-restore-database?view=sql-server-ver15
  • lexer
ID:                  ( [A-Za-z_#] | FullWidthLetter) ( [A-Za-z_#$@0-9] | FullWidthLetter )*;

<invalid issue>extra letter ( ) is defined in create_or_alter_procedure

  • input
CREATE PROCEDURE [dbo].[TempGetStateItemExclusive3]
			@id         nvarchar(88),
            @itemShort  varbinary(7000) OUTPUT,
            @locked     bit OUTPUT,
            @lockAge    int OUTPUT,
            @lockCookie int OUTPUT,
            @actionFlags int OUTPUT
WITH NATIVE_COMPILATION, SCHEMABINDING, EXECUTE AS OWNER
AS BEGIN ATOMIC WITH ( TRANSACTION ISOLATION LEVEL = SNAPSHOT, LANGUAGE = N'us_english')
  • parse error
    line 2:3 mismatched input '@' expecting {AS, FOR, WITH, LOCAL_ID, '(', ';'}
    line 2:27 extraneous input ',' expecting {, ALTER, BACKUP, BEGIN, BLOCKING_HIERARCHY, BREAK, CALLED, CASE, CLOSE, COALESCE, COMMIT, CONTINUE, CONVERT, CREATE, CURRENT_TIMESTAMP, CURRENT_USER, DATA_COMPRESSION, DBCC, DEALLOCATE, DECLARE, DEFAULT, DELETE, DROP, END, EVENTDATA, EXECUTE, FETCH, FILENAME, FILLFACTOR, FORCESEEK, GET, GOTO, GRANT, IDENTITY, IF, IIF, INIT, INSERT, ISNULL, KEY, KILL, LEFT, MASTER, MAX_MEMORY, MERGE, NULL, NULLIF, OFFSETS, OPEN, OVER, PAGE, PRINT, PUBLIC, R, RAISERROR, RAW, RECONFIGURE, RETURN, RETURNS, REVERT, RIGHT, ROLLBACK, ROWCOUNT, SAFETY, SAVE, SELECT, SERVER, SESSION_USER, SET, SETUSER, SHUTDOWN, SID, SOURCE, SPLIT, STATE, START, SYSTEM_USER, TARGET, TRUNCATE, UPDATE, USE, WAITFOR, WHILE, WITH, ABSOLUTE, ACCENT_SENSITIVITY, ACTION, ACTIVATION, ACTIVE, ADDRESS, AES_128, AES_192, AES_256, AFFINITY, AFTER, AGGREGATE, ALGORITHM, ALLOW_ENCRYPTED_VALUE_MODIFICATIONS, ALLOW_SNAPSHOT_ISOLATION, ALLOWED, ANSI_NULL_DEFAULT, ANSI_NULLS, ANSI_PADDING, ANSI_WARNINGS, APPLICATION_LOG, APPLY, ARITHABORT, ASSEMBLY, AUDIT, AUDIT_GUID, AUTO, AUTO_CLEANUP, AUTO_CLOSE, AUTO_CREATE_STATISTICS, AUTO_SHRINK, AUTO_UPDATE_STATISTICS, AUTO_UPDATE_STATISTICS_ASYNC, AVAILABILITY, AVG, BACKUP_PRIORITY, BEGIN_DIALOG, BIGINT, BINARY_BASE64, BINARY_CHECKSUM, BINDING, BLOB_STORAGE, BROKER, BROKER_INSTANCE, BULK_LOGGED, CALLER, CAP_CPU_PERCENT, CAST, CATALOG, CATCH, CHANGE_RETENTION, CHANGE_TRACKING, CHECKSUM, CHECKSUM_AGG, CLEANUP, COLLECTION, COLUMN_MASTER_KEY, COMMITTED, COMPATIBILITY_LEVEL, CONCAT, CONCAT_NULL_YIELDS_NULL, CONTENT, CONTROL, COOKIE, COUNT, COUNT_BIG, COUNTER, CPU, CREATE_NEW, CREATION_DISPOSITION, CREDENTIAL, CRYPTOGRAPHIC, CURSOR_CLOSE_ON_COMMIT, CURSOR_DEFAULT, DATA, DATE_CORRELATION_OPTIMIZATION, DATEADD, DATEDIFF, DATENAME, DATEPART, DAYS, DB_CHAINING, DB_FAILOVER, DECRYPTION, DEFAULT_DOUBLE_QUOTE, DEFAULT_FULLTEXT_LANGUAGE, DEFAULT_LANGUAGE, DELAY, DELAYED_DURABILITY, DELETED, DENSE_RANK, DEPENDENTS, DES, DESCRIPTION, DESX, DHCP, DIALOG, DIRECTORY_NAME, DISABLE, DISABLE_BROKER, DISABLED, DISK_DRIVE, DOCUMENT, DYNAMIC, EMERGENCY, EMPTY, ENABLE, ENABLE_BROKER, ENCRYPTED_VALUE, ENCRYPTION, ENDPOINT_URL, ERROR_BROKER_CONVERSATIONS, EXCLUSIVE, EXECUTABLE, EXIST, EXPAND, EXPIRY_DATE, EXPLICIT, FAIL_OPERATION, FAILOVER_MODE, FAILURE, FAILURE_CONDITION_LEVEL, FAST, FAST_FORWARD, FILEGROUP, FILEGROWTH, FILEPATH, FILESTREAM, FILTER, FIRST, FIRST_VALUE, FOLLOWING, FORCE, FORCE_FAILOVER_ALLOW_DATA_LOSS, FORCED, FORMAT, FORWARD_ONLY, FULLSCAN, FULLTEXT, GB, GETDATE, GETUTCDATE, GLOBAL, GO, GROUP_MAX_REQUESTS, GROUPING, GROUPING_ID, HADR, HASH, HEALTH_CHECK_TIMEOUT, HIGH, HONOR_BROKER_PRIORITY, HOURS, IDENTITY_VALUE, IGNORE_NONCLUSTERED_COLUMNSTORE_INDEX, IMMEDIATE, IMPERSONATE, IMPORTANCE, INCREMENTAL, INITIATOR, INPUT, INSENSITIVE, INSERTED, INT, IP, ISOLATION, KB, KEEP, KEEPFIXED, KEY_SOURCE, KEYS, KEYSET, LAG, LAST, LAST_VALUE, LEAD, LEVEL, LIST, LISTENER, LISTENER_URL, LOB_COMPACTION, LOCAL, LOCATION, LOCK, LOCK_ESCALATION, LOGIN, LOOP, LOW, MANUAL, MARK, MATERIALIZED, MAX, MAX_CPU_PERCENT, MAX_DOP, MAX_FILES, MAX_IOPS_PER_VOLUME, MAX_MEMORY_PERCENT, MAX_PROCESSES, MAX_QUEUE_READERS, MAX_ROLLOVER_FILES, MAXDOP, MAXRECURSION, MAXSIZE, MB, MEDIUM, MEMORY_OPTIMIZED_DATA, MESSAGE, MIN, MIN_ACTIVE_ROWVERSION, MIN_CPU_PERCENT, MIN_IOPS_PER_VOLUME, MIN_MEMORY_PERCENT, MINUTES, MIRROR_ADDRESS, MIXED_PAGE_ALLOCATION, MODE, MODIFY, MOVE, MULTI_USER, NAME, NESTED_TRIGGERS, NEW_ACCOUNT, NEW_BROKER, NEW_PASSWORD, NEXT, NO, NO_TRUNCATE, NO_WAIT, NOCOUNT, NODES, NOEXPAND, NON_TRANSACTED_ACCESS, NORECOMPUTE, NORECOVERY, NOWAIT, NTILE, NUMANODE, NUMBER, NUMERIC_ROUNDABORT, OBJECT, OFFLINE, OFFSET, OLD_ACCOUNT, ONLINE, ONLY, OPEN_EXISTING, OPTIMISTIC, OPTIMIZE, OUT, OUTPUT, OWNER, PAGE_VERIFY, PARAMETERIZATION, PARTITION, PARTITIONS, PARTNER, PATH, POISON_MESSAGE_HANDLING, POOL, PORT, PRECEDING, PRIMARY_ROLE, PRIOR, PRIORITY, PRIORITY_LEVEL, PRIVATE, PRIVATE_KEY, PRIVILEGES, PROCEDURE_NAME, PROPERTY, PROVIDER, PROVIDER_KEY_NAME, QUERY, QUEUE, QUEUE_DELAY, QUOTED_IDENTIFIER, RANGE, RANK, RC2, RC4, RC4_128, READ_COMMITTED_SNAPSHOT, READ_ONLY, READ_ONLY_ROUTING_LIST, READ_WRITE, READONLY, REBUILD, RECEIVE, RECOMPILE, RECOVERY, RECURSIVE_TRIGGERS, RELATIVE, REMOTE, REMOTE_SERVICE_NAME, REMOVE, REORGANIZE, REPEATABLE, REPLICA, REQUEST_MAX_CPU_TIME_SEC, REQUEST_MAX_MEMORY_GRANT_PERCENT, REQUEST_MEMORY_GRANT_TIMEOUT_SEC, REQUIRED_SYNCHRONIZED_SECONDARIES_TO_COMMIT, RESERVE_DISK_SPACE, RESOURCE, RESOURCE_MANAGER_LOCATION, RESTRICTED_USER, RETENTION, ROBUST, ROOT, ROUTE, ROW, ROW_NUMBER, ROWGUID, ROWS, SAMPLE, SCHEMABINDING, SCOPED, SCROLL, SCROLL_LOCKS, SEARCH, SECONDARY, SECONDARY_ONLY, SECONDARY_ROLE, SECONDS, SECRET, SECURITY, SECURITY_LOG, SEEDING_MODE, SELF, SEMI_SENSITIVE, SEND, SENT, SEQUENCE, SERIALIZABLE, SESSION_TIMEOUT, SETERROR, SHARE, SHOWPLAN, SIGNATURE, SIMPLE, SINGLE_USER, SIZE, SMALLINT, SNAPSHOT, SPATIAL_WINDOW_MAX_CELLS, STANDBY, START_DATE, STATIC, STATS_STREAM, STATUS, STDEV, STDEVP, STOPLIST, STRING_AGG, STUFF, SUBJECT, SUM, SUSPEND, SYMMETRIC, SYNCHRONOUS_COMMIT, SYNONYM, SYSTEM, TAKE, TARGET_RECOVERY_TIME, TB, TEXTIMAGE_ON, THROW, TIES, TIME, TIMEOUT, TIMER, TINYINT, TORN_PAGE_DETECTION, TRANSFORM_NOISE_WORDS, TRIPLE_DES, TRIPLE_DES_3KEY, TRUSTWORTHY, TRY, TSQL, TWO_DIGIT_YEAR_CUTOFF, TYPE, TYPE_WARNING, UNBOUNDED, UNCOMMITTED, UNKNOWN, UNLIMITED, USING, VALID_XML, VALIDATION, VALUE, VAR, VARP, VIEW_METADATA, VIEWS, WAIT, WELL_FORMED_XML, WORK, WORKLOAD, XML, XMLNAMESPACES, DOUBLE_QUOTE_ID, SQUARE_BRACKET_ID, LOCAL_ID, DECIMAL, ID, STRING, BINARY, FLOAT, REAL, '$', '(', ';', '+', '-', '~'}

alter database not support add file,add filegroup.

  • input
USE master
GO
ALTER DATABASE AdventureWorks2012
ADD FILEGROUP Test1FG1;
GO
ALTER DATABASE AdventureWorks2012 
ADD FILE 
(
    NAME = test1dat3,
    FILENAME = 'C:\Program Files\Microsoft SQL Server\MSSQL10_50.MSSQLSERVER\MSSQL\DATA\t1dat3.ndf',
    SIZE = 5MB,
    MAXSIZE = 100MB,
    FILEGROWTH = 5MB
),
(
    NAME = test1dat4,
    FILENAME = 'C:\Program Files\Microsoft SQL Server\MSSQL10_50.MSSQLSERVER\MSSQL\DATA\t1dat4.ndf',
    SIZE = 5MB,
    MAXSIZE = 100MB,
    FILEGROWTH = 5MB
)
TO FILEGROUP Test1FG1;
GO

-- Database design/Databases/How-to guides/Manage/Add data files
-- https://docs.microsoft.com/en-us/sql/relational-databases/databases/add-data-or-log-files-to-a-database?view=sql-server-ver15

create external table not defined in parser rule

  • input
CREATE EXTERNAL TABLE [inventory_ora]
    ([inv_date] DECIMAL(10,0) NOT NULL, [inv_item] DECIMAL(10,0) NOT NULL,
    [inv_warehouse] DECIMAL(10,0) NOT NULL, [inv_quantity_on_hand] DECIMAL(10,0))
WITH (DATA_SOURCE=[OracleSalesSrvr],
        --LOCATION='<oracle_service_name,nvarchar(30),xe>.<oracle_schema,nvarchar(128),HR>.<oracle_table,nvarchar(128),INVENTORY>');
        LOCATION='xe.HR.INVENTORY');

-- Big Data Clusters/How-to guides/Data virtualization/Relational data/Query Oracle data
-- https://docs.microsoft.com/en-us/sql/big-data-cluster/tutorial-query-oracle?view=sql-server-ver15
  • error
ハンドルされていない例外: System.Reflection.TargetInvocationException: 呼び出しのターゲットが例外をスローしました。 ---> LibTSQL.ParserError: no viable alternative at input 'CREATEEXTERNALTABLE' ---> Antlr4.Runtime.NoViableAltException: 種類 'Antlr4.Runtime.NoViableAltException' の例外がスローされました。
   場所 Antlr4.Runtime.Atn.ParserATNSimulator.HandleNoViableAlt(ITokenStream input, Int32 startIndex, SimulatorState previous)
   場所 Antlr4.Runtime.Atn.ParserATNSimulator.ExecATN(DFA dfa, ITokenStream input, Int32 startIndex, SimulatorState initialState)
   場所 Antlr4.Runtime.Atn.ParserATNSimulator.ExecDFA(DFA dfa, ITokenStream input, Int32 startIndex, SimulatorState state)
   場所 Antlr4.Runtime.Atn.ParserATNSimulator.AdaptivePredict(ITokenStream input, Int32 decision, ParserRuleContext outerContext, Boolean useContext)
   場所 Antlr4.Runtime.Atn.ParserATNSimulator.AdaptivePredict(ITokenStream input, Int32 decision, ParserRuleContext outerContext)
   場所 LibTSQL.TSqlParser.ddl_clause() 場所 C:\Users\Hidenori\source\repos\SQLParser\LibTSQL\obj\Debug\TSqlParser.cs:行 1744
   --- 内部例外スタック トレースの終わり ---
   場所 LibTSQL.ParserErrorListener.SyntaxError(IRecognizer recognizer, IToken offendingSymbol, Int32 line, Int32 charPositionInLine, String msg, RecognitionException e) 場所 C:\Users\Hidenori\source\repos\SQLParser\LibTSQL\ParserErrorListener.cs:行 16
   場所 Antlr4.Runtime.ProxyErrorListener`1.SyntaxError(IRecognizer recognizer, Symbol offendingSymbol, Int32 line, Int32 charPositionInLine, String msg, RecognitionException e)
   場所 Antlr4.Runtime.Parser.NotifyErrorListeners(IToken offendingToken, String msg, RecognitionException e)
   場所 Antlr4.Runtime.DefaultErrorStrategy.NotifyErrorListeners(Parser recognizer, String message, RecognitionException e)
   場所 Antlr4.Runtime.DefaultErrorStrategy.ReportNoViableAlternative(Parser recognizer, NoViableAltException e)
   場所 Antlr4.Runtime.DefaultErrorStrategy.ReportError(Parser recognizer, RecognitionException e)
   場所 LibTSQL.TSqlParser.ddl_clause() 場所 C:\Users\Hidenori\source\repos\SQLParser\LibTSQL\obj\Debug\TSqlParser.cs:行 2875
   場所 LibTSQL.TSqlParser.sql_clause() 場所 C:\Users\Hidenori\source\repos\SQLParser\LibTSQL\obj\Debug\TSqlParser.cs:行 1091
   場所 LibTSQL.TSqlParser.sql_clauses() 場所 C:\Users\Hidenori\source\repos\SQLParser\LibTSQL\obj\Debug\TSqlParser.cs:行 998
   場所 LibTSQL.TSqlParser.batch() 場所 C:\Users\Hidenori\source\repos\SQLParser\LibTSQL\obj\Debug\TSqlParser.cs:行 920
   場所 LibTSQL.TSqlParser.tsql_file() 場所 C:\Users\Hidenori\source\repos\SQLParser\LibTSQL\obj\Debug\TSqlParser.cs:行 823
   --- 内部例外スタック トレースの終わり ---
   場所 System.RuntimeMethodHandle.InvokeMethod(Object target, Object[] arguments, Signature sig, Boolean constructor)
   場所 System.Reflection.RuntimeMethodInfo.UnsafeInvokeInternal(Object obj, Object[] parameters, Object[] arguments)
   場所 System.Reflection.RuntimeMethodInfo.Invoke(Object obj, BindingFlags invokeAttr, Binder binder, Object[] parameters, CultureInfo culture)
   場所 System.Reflection.MethodBase.Invoke(Object obj, Object[] parameters)
   場所 LibTSQL.LibTSQL.load_string(String str) 場所 C:\Users\Hidenori\source\repos\SQLParser\LibTSQL\LibTSQL.cs:行 40
   場所 LibTSQL.LibTSQL.load_file(String filepath, String encoding_name) 場所 C:\Users\Hidenori\source\repos\SQLParser\LibTSQL\LibTSQL.cs:行 56
   場所 SQLParser.Program.Main(String[] args) 場所 C:\Users\Hidenori\source\repos\SQLParser\SQLParser\Program.cs:行 45

ATOMIC WITH not support in create_or_alter_procedure

  • input
CREATE PROCEDURE [dbo].[TempGetStateItemExclusive3]
			@id         nvarchar(88),
            @itemShort  varbinary(7000) OUTPUT,
            @locked     bit OUTPUT,
            @lockAge    int OUTPUT,
            @lockCookie int OUTPUT,
            @actionFlags int OUTPUT
WITH NATIVE_COMPILATION, SCHEMABINDING, EXECUTE AS OWNER
AS BEGIN ATOMIC WITH ( TRANSACTION ISOLATION LEVEL = SNAPSHOT, LANGUAGE = N'us_english')

    DECLARE @textptr AS varbinary(max)
    DECLARE @length AS int
    DECLARE @now AS datetime
    DECLARE @nowLocal AS datetime

    SET @now = GETUTCDATE()
    SET @nowLocal = GETDATE()
	
	DECLARE @LockedCheck bit
	DECLARE @Flags int

	SELECT @LockedCheck=Locked, @Flags=Flags FROM dbo.ASPStateTempSessions WHERE SessionID=@id
		
	IF @Flags&1 <> 0
	BEGIN
		SET @actionFlags=1
		UPDATE dbo.ASPStateTempSessions SET Flags=Flags& ~1 WHERE SessionID=@id
	END
	ELSE
		SET @actionFlags=0

	IF @LockedCheck=1
	BEGIN
		UPDATE dbo.ASPStateTempSessions
        SET Expires = DATEADD(n, Timeout, @now), 
            @lockAge = DATEDIFF(second, LockDate, @now),
            @lockCookie = LockCookie,
            @itemShort = NULL,
            --@textptr = NULL,
            @length = NULL,
            @locked = 1
        WHERE SessionId = @id
	END
	ELSE
	BEGIN
		UPDATE dbo.ASPStateTempSessions
        SET Expires = DATEADD(n, Timeout, @now), 
            LockDate = @now,
            LockDateLocal = @nowlocal,
            @lockAge = 0,
            @lockCookie = LockCookie = LockCookie + 1,
            @itemShort = SessionItemShort,
            @textptr = SessionItemLong,
            @length = 1,
            @locked = 0,
            Locked = 1
        WHERE SessionId = @id
        
		IF @TextPtr IS NOT NULL
			SELECT @TextPtr
		
	END
END
GO
  • parse error
    line 9:16 missing ':' at 'WITH'

ALTER AVAILABILITY cannot omission LISTENER_URL,AVAILAVILITY_MODE... when SEEDING_MODE is set

  • input
-- Cancel automatic seeding.  Connect to global primary but specify DAG AG2
ALTER AVAILABILITY GROUP [distributedag]   
   MODIFY  
   AVAILABILITY GROUP ON  
   'ag2' WITH  
   ( SEEDING_MODE = MANUAL );  

-- Business continuity/Always On availability groups/How-to/Configure availability group/Configure distributed availability groups
-- https://docs.microsoft.com/en-us/sql/database-engine/availability-groups/windows/configure-distributed-availability-groups?view=sql-server-ver15

QUOTED_URL not accept / -.and require port number.

  • input
IF NOT EXISTS(SELECT * FROM sys.external_data_sources WHERE name = 'SqlStoragePool')
    CREATE EXTERNAL DATA SOURCE SqlStoragePool
    WITH (LOCATION = 'sqlhdfs://controller-svc/default');

-- Big Data Clusters/How-to guides/Data virtualization/HDFS data/Virtualize CSV data
-- https://docs.microsoft.com/en-us/sql/big-data-cluster/data-virtualization-csv?view=sql-server-ver15
  • error
mismatched input ''sqlhdfs://controller-svc/default'' expecting {QUOTED_URL, QUOTED_HOST_AND_PORT}
  • Lexer
QUOTED_HOST_AND_PORT:'\''(([A-Za-z]+[.]|[A-Za-z]+)|IPV4_ADDR) ([:] DECIMAL) '\'';

"max_size" keyword raise error

  • input
SELECT max_size  
FROM a
  • input
USE AdventureWorks2012;  
GO  
SELECT file_id, name, type_desc, physical_name, size, max_size  
FROM sys.database_files ;  
GO  
  

-- Database design/Databases/How-to guides/Manage/Display Data & Log Space Information for a Database
-- https://docs.microsoft.com/en-us/sql/relational-databases/databases/display-data-and-log-space-information-for-a-database?view=sql-server-ver15

CREATE AVAILAVILITY not defined in parser rule

  • input
CREATE AVAILABILITY GROUP [ag1]   
FOR DATABASE db1   
REPLICA ON N'server1' WITH (ENDPOINT_URL = N'TCP://server1.contoso.com:5022',  
    FAILOVER_MODE = AUTOMATIC,  
    AVAILABILITY_MODE = SYNCHRONOUS_COMMIT,   
    BACKUP_PRIORITY = 50,   
    SECONDARY_ROLE(ALLOW_CONNECTIONS = NO),   
    SEEDING_MODE = AUTOMATIC),   
N'server2' WITH (ENDPOINT_URL = N'TCP://server2.contoso.com:5022',   
    FAILOVER_MODE = AUTOMATIC,   
    AVAILABILITY_MODE = SYNCHRONOUS_COMMIT,   
    BACKUP_PRIORITY = 50,   
    SECONDARY_ROLE(ALLOW_CONNECTIONS = NO),   
    SEEDING_MODE = AUTOMATIC);   
GO  
  

-- Business continuity/Always On availability groups/How-to/Configure availability group/Configure distributed availability groups
-- https://docs.microsoft.com/en-us/sql/database-engine/availability-groups/windows/configure-distributed-availability-groups?view=sql-server-ver15

case sensitive

  • before fix
    LOCAL_ID: '@' ([A-Z_$@#0-9] | FullWidthLetter)+;
    QUOTED_URL: ''' ([A-Z][A-Z]+[:]) '//' (([A-Z]+[.]|[A-Z]+)|IPV4_ADDR) [:] DECIMAL ''' ;
    DISK_DRIVE: [A-Z][:];
    fragment IPV6_OCTECT: [0-9A-F][0-9A-F][0-9A-F][0-9A-F];
    fragment HEX_DIGIT: [0-9A-F];
    IPV6_ADDR: [']?[0-9A-F]?[0-9A-F]?[0-9A-F]?[0-9A-F]?[:][0-9A-F]?[0-9A-F]?[0-9A-F]?[0-9A-F]?[:][0-9A-F]?[0-9A-F]?[0-9A-F]?[0-9A-F]?[:][0-9A-F]?[0-9A-F]?[0-9A-F]?[0-9A-F]?[:][0-9A-F]?[0-9A-F]?[0-9A-F]?[0-9A-F]?[:][0-9A-F]?[0-9A-F]?[0-9A-F]?[0-9A-F]?[:][0-9A-F]?[0-9A-F]?[0-9A-F]?[0-9A-F]?[:][0-9A-F]?[0-9A-F]?[0-9A-F]?[0-9A-F]?[']?;

  • post fix
    LOCAL_ID: '@' ([A-Za-z_$@#0-9] | FullWidthLetter)+;
    QUOTED_URL: ''' ([A-Za-z][A-Za-z]+[:]) '//' (([A-Za-z]+[.]|[A-Za-z]+)|IPV4_ADDR) [:] DECIMAL ''' ;
    DISK_DRIVE: [A-Z][:];
    fragment IPV6_OCTECT: [0-9A-Fa-f][0-9A-Fa-f][0-9A-Fa-f][0-9A-Fa-f];
    fragment HEX_DIGIT: [0-9A-Fa-f];
    IPV6_ADDR: [']?[0-9A-Fa-f]?[0-9A-Fa-f]?[0-9A-Fa-f]?[0-9A-Fa-f]?[:][0-9A-Fa-f]?[0-9A-Fa-f]?[0-9A-Fa-f]?[0-9A-Fa-f]?[:][0-9A-Fa-f]?[0-9A-Fa-f]?[0-9A-Fa-f]?[0-9A-Fa-f]?[:][0-9A-Fa-f]?[0-9A-Fa-f]?[0-9A-Fa-f]?[0-9A-Fa-f]?[:][0-9A-Fa-f]?[0-9A-Fa-f]?[0-9A-Fa-f]?[0-9A-Fa-f]?[:][0-9A-Fa-f]?[0-9A-Fa-f]?[0-9A-Fa-f]?[0-9A-Fa-f]?[:][0-9A-Fa-f]?[0-9A-Fa-f]?[0-9A-Fa-f]?[0-9A-Fa-f]?[:][0-9A-Fa-f]?[0-9A-Fa-f]?[0-9A-Fa-f]?[0-9A-Fa-f]?[']?;

deep begin end cause System.Text.Json.JsonException:

  • input
begin
	begin
		begin
			begin
				begin
					select 1
				end
			end
		end
	end
end
  • error
ハンドルされていない例外: System.Text.Json.JsonException: A possible object cycle was detected which is not supported. This can either be due to a cycle or if the object depth is larger than the maximum allowed depth of 0.
   場所 System.Text.Json.ThrowHelper.ThrowInvalidOperationException_SerializerCycleDetected(Int32 maxDepth)
   場所 System.Text.Json.JsonSerializer.Write(Utf8JsonWriter writer, Int32 originalWriterDepth, Int32 flushThreshold, JsonSerializerOptions options, WriteStack& state)
   場所 System.Text.Json.JsonSerializer.WriteCore(Utf8JsonWriter writer, Object value, Type type, JsonSerializerOptions options)
   場所 System.Text.Json.JsonSerializer.WriteCore(PooledByteBufferWriter output, Object value, Type type, JsonSerializerOptions options)
   場所 System.Text.Json.JsonSerializer.WriteCoreString(Object value, Type type, JsonSerializerOptions options)
   場所 System.Text.Json.JsonSerializer.Serialize[TValue](TValue value, JsonSerializerOptions options)
   場所 LibTSQL.LibTSQL.to_json() 場所 C:\Users\Hidenori\source\repos\SQLParser\LibTSQL\LibTSQL.cs:行 50
   場所 SQLParser.Program.Main(String[] args) 場所 C:\Users\Hidenori\source\repos\SQLParser\SQLParser\Program.cs:行 49

if statement not accept boolean function

  • input
IF (NOT sys.fn_hadr_backup_is_preferred_replica(@DBNAME))  
BEGIN  
      Select 'This is not the preferred replica, exiting with success';  
      RETURN 0 -- This is a normal, expected condition, so the script returns success  
END  
BACKUP DATABASE @DBNAME TO DISK=<disk>  
   WITH COPY_ONLY;  

-- Business continuity/Always On availability groups/How-to/Configure availability group/Configure backup on replicas
-- https://docs.microsoft.com/en-us/sql/database-engine/availability-groups/windows/configure-backup-on-availability-replicas-sql-server?view=sql-server-ver15

289

alter database not support remove file,remove filegroup.

  • input
USE master;
GO
ALTER DATABASE AdventureWorks2012
REMOVE FILE test1dat4;
GO

-- Database design/Databases/How-to guides/Manage/Delete Data or Log Files from a Database
-- https://docs.microsoft.com/en-us/sql/relational-databases/databases/delete-data-or-log-files-from-a-database?view=sql-server-ver15

EXECUTE...WITH RESULT SETS not defined in parser rule

  • input
EXECUTE sp_execute_external_script @language = N'Python'
    , @script = N'OutputDataSet = InputDataSet'
    , @input_data_1 = N'SELECT 1 AS hello'
WITH RESULT SETS(([Hello World] INT));
GO

-- Big Data Clusters/How-to guides/Big Data/Machine Learning/Machine learning quickstarts/Python/Run Python scripts
-- https://docs.microsoft.com/en-us/sql/machine-learning/tutorials/quickstart-python-create-script?toc=/sql/toc.json&view=sql-server-ver15

Execute a pass-through command against a linked server not defined

  • input
EXECUTE( ' Use Sales; CREATE LOGIN sample_user  WITH PASSWORD = ''password123!#'' ;') AT  DATA_SOURCE SqlDataPool;

EXECUTE('Use Sales; CREATE USER sample_user; ALTER ROLE [db_datareader] ADD MEMBER sample_user;  ALTER ROLE [db_datawriter] ADD MEMBER sample_user;') AT DATA_SOURCE SqlDataPool;

-- Big Data Clusters/How-to guides/Data ingestion/Load data with Spark
-- https://docs.microsoft.com/en-us/sql/big-data-cluster/tutorial-data-pool-ingest-spark?view=sql-server-ver15

IPV6_ADDR not match with '2001:db88:f0:f00f::cf3c'

  • input
ALTER AVAILABILITY GROUP [ag1]    
    ADD LISTENER 'ag1-listener' ( 
        WITH IP ( ('2001:db88:f0:f00f::cf3c'),('2001:4898:e0:f213::4ce2') ) , 
        PORT = 60173);    
GO  

-- Business continuity/Always On availability groups/How-to/Configure availability group/Configure distributed availability groups
-- https://docs.microsoft.com/en-us/sql/database-engine/availability-groups/windows/configure-distributed-availability-groups?view=sql-server-ver15

when parse BEGIN~END sql,token and rule and value are all empty node are created.

  • input sql

BEGIN
  select 1
END

  • output xml(indent by hand)

<node token="" rule="tsql_file" value="<EOF>">
 <node token="" rule="" value="">
  <node token="" rule="" value="">
   <node token="" rule="" value="">
    <node token="" rule="" value="">
     <node token="BEGIN" rule="" value="BEGIN">
      <node token="" rule="" value="">
       <node token="" rule="" value="">
        <node token="" rule="" value="">
         <node token="" rule="" value="">
          <node token="" rule="" value="">
           <node token="SELECT" rule="" value="select">
            <node token="" rule="" value="">
             <node token="" rule="" value="">
              <node token="" rule="" value="">
               <node token="" rule="" value="">
                <node token="" rule="" value="">
                 <node token="DECIMAL" rule="" value="1" />
                </node>
               </node>
              </node>
             </node>
            </node>
           </node>
          </node>
         </node>
        </node>
       </node>
      </node>
     </node>
    </node>
   </node>
  </node>
 </node>
</node>

CREATE DATABASE SCOPED CREDENTIAL not supported

  • input
CREATE DATABASE SCOPED CREDENTIAL OracleCredential
WITH IDENTITY = 'aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa', SECRET = 'bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb';
  • error
no viable alternative at input 'WITHIDENTITY'
LibTSQL.ParserError: no viable alternative at input 'WITHIDENTITY' ---> Antlr4.Runtime.NoViableAltException: 種類 'Antlr4.Runtime.NoViableAltException' の例外がスローされました。
   場所 Antlr4.Runtime.Atn.ParserATNSimulator.HandleNoViableAlt(ITokenStream input, Int32 startIndex, SimulatorState previous)
   場所 Antlr4.Runtime.Atn.ParserATNSimulator.ExecATN(DFA dfa, ITokenStream input, Int32 startIndex, SimulatorState initialState)
   場所 Antlr4.Runtime.Atn.ParserATNSimulator.ExecDFA(DFA dfa, ITokenStream input, Int32 startIndex, SimulatorState state)
   場所 Antlr4.Runtime.Atn.ParserATNSimulator.AdaptivePredict(ITokenStream input, Int32 decision, ParserRuleContext outerContext, Boolean useContext)
   場所 Antlr4.Runtime.Atn.ParserATNSimulator.AdaptivePredict(ITokenStream input, Int32 decision, ParserRuleContext outerContext)
   場所 LibTSQL.TSqlParser.sql_clause() 場所 C:\Users\Hidenori\source\repos\SQLParser\LibTSQL\obj\Debug\TSqlParser.cs:行 1077
   --- 内部例外スタック トレースの終わり ---
   場所 LibTSQL.ParserErrorListener.SyntaxError(IRecognizer recognizer, IToken offendingSymbol, Int32 line, Int32 charPositionInLine, String msg, RecognitionException e) 場所 C:\Users\Hidenori\source\repos\SQLParser\LibTSQL\ParserErrorListener.cs:行 16
   場所 Antlr4.Runtime.ProxyErrorListener`1.SyntaxError(IRecognizer recognizer, Symbol offendingSymbol, Int32 line, Int32 charPositionInLine, String msg, RecognitionException e)
   場所 Antlr4.Runtime.Parser.NotifyErrorListeners(IToken offendingToken, String msg, RecognitionException e)
   場所 Antlr4.Runtime.DefaultErrorStrategy.NotifyErrorListeners(Parser recognizer, String message, RecognitionException e)
   場所 Antlr4.Runtime.DefaultErrorStrategy.ReportNoViableAlternative(Parser recognizer, NoViableAltException e)
   場所 Antlr4.Runtime.DefaultErrorStrategy.ReportError(Parser recognizer, RecognitionException e)
   場所 LibTSQL.TSqlParser.sql_clause() 場所 C:\Users\Hidenori\source\repos\SQLParser\LibTSQL\obj\Debug\TSqlParser.cs:行 1130
   場所 LibTSQL.TSqlParser.sql_clauses() 場所 C:\Users\Hidenori\source\repos\SQLParser\LibTSQL\obj\Debug\TSqlParser.cs: 行 995
   場所 LibTSQL.TSqlParser.batch() 場所 C:\Users\Hidenori\source\repos\SQLParser\LibTSQL\obj\Debug\TSqlParser.cs:行 917
   場所 LibTSQL.TSqlParser.tsql_file() 場所 C:\Users\Hidenori\source\repos\SQLParser\LibTSQL\obj\Debug\TSqlParser.cs:行 820
   場所 LibTSQL.LibTSQL.load_string(String str) 場所 C:\Users\Hidenori\source\repos\SQLParser\LibTSQL\LibTSQL.cs:行 33
   場所 LibTSQL.LibTSQL.load_file(String filepath, String encoding_name) 場所 C:\Users\Hidenori\source\repos\SQLParser\LibTSQL\LibTSQL.cs:行 47
   場所 SQLParser.Program.Main(String[] args) 場所 C:\Users\Hidenori\source\repos\SQLParser\SQLParser\Program.cs:行 40

raiseerror not support with nowait

  • input
   if object_id(N'proc_calculate_RTO', 'p') is not null
       drop procedure proc_calculate_RTO
   go
   
   raiserror('creating procedure proc_calculate_RTO', 0,1) with nowait
   go
   --
   -- name: proc_calculate_RTO
   --
   -- description: Calculate RTO of a secondary database.
   -- 
   -- parameters:	@secondary_database_name nvarchar(max): name of the secondary database.
   --
   -- security: this is a public interface object.
   --
   create procedure proc_calculate_RTO
   (
   @secondary_database_name nvarchar(max)
   )
   as
   begin
 	  declare @db sysname
 	  declare @is_primary_replica bit 
 	  declare @is_failover_ready bit 
 	  declare @redo_queue_size bigint 
 	  declare @redo_rate bigint
 	  declare @replica_id uniqueidentifier
 	  declare @group_database_id uniqueidentifier
 	  declare @group_id uniqueidentifier
 	  declare @RTO float 

 	  select 
 	  @is_primary_replica = dbr.is_primary_replica, 
 	  @is_failover_ready = dbcs.is_failover_ready, 
 	  @redo_queue_size = dbr.redo_queue_size, 
 	  @redo_rate = dbr.redo_rate, 
 	  @replica_id = dbr.replica_id,
 	  @group_database_id = dbr.group_database_id,
 	  @group_id = dbr.group_id 
 	  from sys.dm_hadr_database_replica_states dbr join sys.dm_hadr_database_replica_cluster_states dbcs 	on dbr.replica_id = dbcs.replica_id and 
 	  dbr.group_database_id = dbcs.group_database_id  where dbcs.database_name = @secondary_database_name

 	  if  @is_primary_replica is null or @is_failover_ready is null or @redo_queue_size is null or @replica_id is null or @group_database_id is null or @group_id is null
 	  begin
 	  	print 'RTO of Database '+ @secondary_database_name +' is not available'
 	  	return
 	  end
 	  else if @is_primary_replica = 1
 	  begin
 	  	print 'You are visiting wrong replica';
 	  	return
 	  end

 	  if @redo_queue_size = 0 
 	  	set @RTO = 0 
 	  else if @redo_rate is null or @redo_rate = 0 
 	  begin
 	  	print 'RTO of Database '+ @secondary_database_name +' is not available'
 	  	return
 	  end
 	  else 
 	  	set @RTO = CAST(@redo_queue_size AS float) / @redo_rate
   
 	  print 'RTO of Database '+ @secondary_database_name +' is ' + convert(varchar, ceiling(@RTO))
 	  print 'group_id of Database '+ @secondary_database_name +' is ' + convert(nvarchar(50), @group_id)
 	  print 'replica_id of Database '+ @secondary_database_name +' is ' + convert(nvarchar(50), @replica_id)
 	  print 'group_database_id of Database '+ @secondary_database_name +' is ' + convert(nvarchar(50), @group_database_id)
   end

-- Business continuity/Always On availability groups/Reference/Troubleshooting & monitoring guide/Monitor performance for availability groups
-- https://docs.microsoft.com/en-us/sql/database-engine/availability-groups/windows/monitor-performance-for-always-on-availability-groups?view=sql-server-ver15

CREATE ENDPOINT not defined in parser rule.

  • input
    CREATE ENDPOINT [<endpoint_name>]
    STATE=STARTED
    AS TCP (LISTENER_PORT = 5022, LISTENER_IP = ALL)
    FOR DATA_MIRRORING (
    ROLE = ALL,
    AUTHENTICATION = WINDOWS NEGOTIATE,
    ENCRYPTION = REQUIRED ALGORITHM AES
    )
    GO

-- Business continuity/Always On availability groups/How-to/Configure availability group/Configure automatic seeding
-- https://docs.microsoft.com/en-us/sql/database-engine/availability-groups/windows/automatically-initialize-always-on-availability-group?view=sql-server-ver15


277

create external file not defined in parser rule.

  • input
CREATE EXTERNAL FILE FORMAT csv_file
WITH (
    FORMAT_TYPE = DELIMITEDTEXT,
    FORMAT_OPTIONS(
        FIELD_TERMINATOR = ',',
        STRING_DELIMITER = '"',
        FIRST_ROW = 2,
        USE_TYPE_DEFAULT = TRUE)
);

-- Big Data Clusters/How-to guides/Data virtualization/HDFS data/Query HDFS data
-- https://docs.microsoft.com/en-us/sql/big-data-cluster/tutorial-query-hdfs-storage-pool?view=sql-server-ver15
  • error
no viable alternative at input 'CREATEEXTERNALFILE'

ハンドルされていない例外: System.Reflection.TargetInvocationException: 呼び出しのターゲットが例外をスローしました。 ---> LibTSQL.ParserError: no viable alternative at input 'CREATEEXTERNALFILE' ---> Antlr4.Runtime.NoViableAltException: 種類 'Antlr4.Runtime.NoViableAltException' の例外がスローされました。
   場所 Antlr4.Runtime.Atn.ParserATNSimulator.HandleNoViableAlt(ITokenStream input, Int32 startIndex, SimulatorState previous)
   場所 Antlr4.Runtime.Atn.ParserATNSimulator.ExecATN(DFA dfa, ITokenStream input, Int32 startIndex, SimulatorState initialState)
   場所 Antlr4.Runtime.Atn.ParserATNSimulator.ExecDFA(DFA dfa, ITokenStream input, Int32 startIndex, SimulatorState state)
   場所 Antlr4.Runtime.Atn.ParserATNSimulator.AdaptivePredict(ITokenStream input, Int32 decision, ParserRuleContext outerContext, Boolean useContext)
   場所 Antlr4.Runtime.Atn.ParserATNSimulator.AdaptivePredict(ITokenStream input, Int32 decision, ParserRuleContext outerContext)
   場所 LibTSQL.TSqlParser.ddl_clause() 場所 C:\Users\Hidenori\source\repos\SQLParser\LibTSQL\obj\Debug\TSqlParser.cs:行 1744

grant connect not defined in parser rule

  • input
GRANT CONNECT ON ENDPOINT::DIAG_EP TO [InstanceX_User];
GO

-- Business continuity/Always On availability groups/Concepts/Configuration/Domain-independent availability groups
-- https://docs.microsoft.com/en-us/sql/database-engine/availability-groups/windows/domain-independent-availability-groups?view=sql-server-ver15

restore not defined in parser rule

  • input
RESTORE FILELISTONLY FROM DISK='/tmp/<db file name>.bak'

-- Big Data Clusters/How-to guides/Data ingestion/Restore a database
-- https://docs.microsoft.com/en-us/sql/big-data-cluster/data-ingestion-restore-database?view=sql-server-ver15

create event session is not defined in parser rule

  • input
CREATE EVENT SESSION [alwayson_health] ON SERVER   
ADD EVENT availability_replica_state_change  
ADD TARGET package0.event_file(SET filename=N'alwayson_health.xel',max_file_size=(5),max_rollover_files=(4),metadatafile=N'alwayson_health.xem')  
WITH (MAX_MEMORY=4096 KB,EVENT_RETENTION_MODE=ALLOW_SINGLE_EVENT_LOSS,MAX_DISPATCH_LATENCY=30 SECONDS,MAX_EVENT_SIZE=0 KB,MEMORY_PARTITION_MODE=NONE,TRACK_CAUSALITY=OFF,STARTUP_STATE=ON)  
GO  

-- Business continuity/Always On availability groups/Reference/Troubleshooting & monitoring guide/Useful tools for troubleshooting/Extended events
-- https://docs.microsoft.com/en-us/sql/database-engine/availability-groups/windows/always-on-extended-events?view=sql-server-ver15

table_constraint not support PRIMARY KEY NONCLUSTERED HASH

  • input
CREATE TABLE [dbo].[ASPStateTempSessions]
(
	[SessionId] [nvarchar](88) COLLATE Latin1_General_100_BIN2 NOT NULL,
	[Created] [datetime] NOT NULL DEFAULT (getutcdate()),
	[Expires] [datetime] NOT NULL,
	[LockDate] [datetime] NOT NULL,
	[LockDateLocal] [datetime] NOT NULL,
	[LockCookie] [int] NOT NULL,
	[Timeout] [int] NOT NULL,
	[Locked] [bit] NOT NULL,
	[SessionItemShort] [varbinary](7000) NULL,
	[SessionItemLong] [varbinary](max) NULL,
	[Flags] [int] NOT NULL DEFAULT ((0)),

INDEX [Index_Expires] NONCLUSTERED 
(
	[Expires] ASC
),
PRIMARY KEY NONCLUSTERED HASH 
(
	[SessionId]
)WITH ( BUCKET_COUNT = 33554432)
)WITH ( MEMORY_OPTIMIZED = ON , DURABILITY = SCHEMA_ONLY )
GO
  • parse error
    line 19:25 extraneous input 'HASH' expecting '('

BACKUP DATABAS..SERVER CERTIFICATE rule error

  • input
BACKUP DATABASE [MYTestDB]  
TO DISK = N'C:\Program Files\Microsoft SQL Server\MSSQL13.MSSQLSERVER\MSSQL\Backup\MyTestDB.bak'  
WITH  
  COMPRESSION,  
  ENCRYPTION   
   (  
   ALGORITHM = AES_256,  
   SERVER CERTIFICATE = BackupEncryptCert  
   ),  
  STATS = 10  
GO  

-- Business continuity/Backup & restore/Concepts/Configuration/Encryption
-- https://docs.microsoft.com/en-us/sql/relational-databases/backup-restore/backup-encryption?view=sql-server-ver15

alter database not support ALTER DATABASE SCOPED CONFIGURATION

  • input
ALTER DATABASE SCOPED CONFIGURATION FOR SECONDARY SET MAXDOP = PRIMARY   

-- Database design/Databases/How-to guides/Manage/Manage properties
-- https://docs.microsoft.com/en-us/sql/relational-databases/databases/view-or-change-the-properties-of-a-database?view=sql-server-ver15

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.