This: @query = SELECT Count(*) FROM ReportServer$DEVSVR1.INFORMATION_SCHEMA.TABLES WHERE TABLE_TYPE = 'BASE TABLE'
executes fine if copied into new query window. But fails EXEC @query with this error:
Database ‘SELECT Count(*) FROM ReportServer$DEVSVR1’ does not exist.
SQL is incorrectly parsing the phrase ‘SELECT Count(*) FROM ReportServer$DEVSVR1’
as the database name.
>Solution :
EXEC @query means execute procedure with name that is in @query variable.
You probably want EXEC(@query) which executes the string