我有这个问题
declare @SQL as NVARCHAR(MAX);
create table #TempCalcPerc
(
PctAPAC nvarchar(50),
PctEMEA nvarchar(50),
PctLAmerica nvarchar(50),
PctNAmerica nvarchar(50)
)
set @SQL = 'Insert into
#TempCalcPerc(PctAPAC,PctEMEA,PctLAmerica,PctNAmerica)
select RTrim(LTrim(Replace([rRecurringMarginPct-Apac],''%'',''))),
RTrim(LTrim(Replace([rRecurringMarginPct-Emea],''%'',''))),
RTrim(LTrim(Replace([rRecurringMarginPct-LatinAmerica],''%'',''))),
RTrim(LTrim(Replace([rRecurringMarginPct-NorthAmerica],''%'','')))
from DashboardData
where DataType = ''SLPayroll'''
exec sp_executeSQL @SQL;
基本上,我只是在执行一些替换操作后,尝试将一些数据插入临时表中。
虽然在select查询中选择了4列,但我得到以下错误:
insert语句的select列表包含的项少于insert列表。选择值的数目必须与插入列的数目匹配。
如果我在不动态的情况下正常地执行SQL,那么查询运行良好。有人能看看我在这里做错了什么吗?
另外,如果我将查询更改为插入,那么插入似乎可以正常工作。
set @SQL = 'Insert into
#TempCalcPerc(PctAPAC,PctEMEA,PctLAmerica,PctNAmerica)
select 1,2,3,4'
exec sp_executeSQL @SQL;
谢谢