Reputation: 69
I try to call declare temp table in my query but it say
"Must declare the table variable "@MDLTable"."
Here my coding:
DECLARE @dbname AS NVARCHAR(50);
SELECT @dbname = DB_NAME();
PRINT @dbname;
DECLARE @sql NVARCHAR(1000) ;
DECLARE @MDLTable AS TABLE(MDLID BIGINT, MDLRLVR INT)
SET @sql = 'INSERT INTO ' + @MDLTable + ' (MDLID, MDLRLVR)
SELECT DISTINCT a.MDLID, a.MDLRLVR FROM ' + @dbname + '.dbo.EUSYSRSRRL a
INNER JOIN ' + @dbname + '.dbo.EUSYSIROE b ON a.MDLID = b.MDLID
INNER JOIN ' + @dbname + '.dbo.EUSYSEAPML c ON b.EAPMLID = c.EAPMLID
WHERE c.REEID = ' + CONVERT(nvarchar(50),6) + ''
exec (@sql);
Upvotes: 0
Views: 2639
Reputation: 1269503
You can do this by using insert . . . exec
:
SET @sql = '
SELECT DISTINCT a.MDLID, a.MDLRLVR
FROM ' + @dbname + '.dbo.EUSYSRSRRL a JOIN
' + @dbname + '.dbo.EUSYSIROE b
ON a.MDLID = b.MDLID JOIN
' + @dbname + '.dbo.EUSYSEAPML c
ON b.EAPMLID = c.EAPMLID
WHERE c.REEID = ' + CONVERT(nvarchar(50), 6) + '';
INSERT INTO @MDLTable (MDLID, MDLRLVR)
exec(@sql);
Upvotes: 1