我正在尝试在SQL Server 2008上运行动态SQL查询:
DECLARE @cmd nvarchar(MAX)
DECLARE @tempTBL TABLE(value1 float)
SET @cmd = 'insert into ' + @tempTBL + ' select value from table11 as tb1 inner join table2 as tb2 on tb1.id = tb2.id where tb1.id2=''active'''
EXEC (@cmd )
我收到错误:
必须声明标量变量“@tempTBL”。
如果我尝试
'insert into @tempTBL ...'
发生同样的错误。
我不想将"declare @tempTBL"
放在@cmd
中,因为它会在循环中运行。
为什么会出现此错误?
答案 0 :(得分:1)
您根本不需要在这里使用动态SQL。
declare @tempTBL table(value1 float)
insert into @tempTBL
select value
from table11 as tb1
inner join table2 as tb2 on tb1.id = tb2.id
where tb1.id2 = 'active'