microsoft / SqlScriptDOM

ScriptDOM/SqlDOM is a .NET library for parsing T-SQL statements and interacting with its abstract syntax tree

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

DacFx: Cannot include $node_id in an index

JerryNixon opened this issue · comments

  • DacFx Version: SQL Server Data Tools 17.0.62203.25080
  • Environment: VisualStudio.17.Release/17.1.3+32328.378, Windows 11

Problem:

This syntax is invalid in Visual Studio right now.
(Note: this syntax is valid and works in SSMS just fine. )

CREATE INDEX IDX_MYINDEX
	ON graph.MYNODE (Column1) INCLUDE ($node_id)

Resulting error:
image

This syntax, however, is not invalid in Visual Studio right now.

CREATE INDEX IDX_MYINDEX 
        ON graph.MYNODE ($node_id) INCLUDE (Column1)

Workaround: Run as string using EXEC(@SQL) in POSTPUBLISH script. Like this:

DECLARE @SQL VARCHAR(MAX) = '
IF NOT EXISTS (SELECT name FROM sysindexes WHERE name = ''IDX_MYINDEX'')
CRCREATE INDEX IDX_MYINDEX
	ON graph.MYNODE (Column1) INCLUDE ($node_id)'
EXEC(@SQL)