Let us say I have a query like this:
SELECT * FROM
(
SELECT * FROM
(
SELECT * FROM DB.dbo.Table
)
INNER JOIN DB.dbo.Table ON ...
I am running this query multiple times with different tables by manually changing the string everywhere. I tried declaring the following:
DECLARE @tablename AS VARCHAR(255)
SET @tablename = 'DB.dbo.Table'
But this does not seem to work as it throws me an error saying that I need to declare @tablename as a table variable before I can use it. How do I templatize my table name and if that is possible, will Intellisense still work?
You can wrap it in an EXEC statement like this:
But no, intellisense will not work in that scenario.
If you know what your output will look like in advance, then you can declare a temp table to hold the results, and then you can access that without EXEC. You will have intellisense on the temp table.
For example: