Options

Improper syntax for table variables

blitzdblitzd Posts: 40
edited January 28, 2013 2:49PM in SQL Prompt Previous Versions
When I bring up SQL Prompt intellisense from this point:
DECLARE @Table TABLE ( ID INT ) 
INSERT  INTO @Table
        ( ID 
        )
        SELECT TOP 10
                object_id
        FROM    sys.all_objects

SELECT  *
FROM    sys.all_objects
WHERE   object_id IN ( SELECT   ID
                       FROM     @T

...and let it autocomplete, it results in this:
DECLARE @Table TABLE ( ID INT ) 
INSERT  INTO @Table
        ( ID 
        )
        SELECT TOP 10
                object_id
        FROM    sys.all_objects

SELECT  *
FROM    sys.all_objects
WHERE   object_id IN ( SELECT   ID
                       FROM     [@Table] )

...and that is just NOT proper syntax for selecting from a table variable, there should be no squared brackets. Running the statement (with the closing parentheses) will result in:
(10 row(s) affected)
Msg 208, Level 16, State 1, Line 6
Invalid object name '@Table'.

When using SQL Prompt to auto-complete the insert into a the table variable, it works correctly.

Comments

  • Options
    Thank you for your post.

    It looks like you have encountered a bug in the tool. I have therefore logged a bug report with the developers. Hopefully they will be able to come up with a fix for the next release. Unfortunately, I cannot yet say when this release will come.
Sign In or Register to comment.