[英]Inserting data in temp table in dynamic query
我有这个查询
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;
我基本上只是在尝试一些替换操作之后将一些数据插入到临时表中。
尽管在选择查询中选择了4列,但出现此错误:
INSERT语句的选择列表包含的项目少于插入列表。 SELECT值的数量必须与INSERT列的数量匹配。
如果我在没有动态的情况下正常执行SQL,则查询运行良好。 有人可以看看吗,让我知道我在做什么错。
另外,如果我将查询更改为插入,似乎工作正常。
set @SQL = 'Insert into
#TempCalcPerc(PctAPAC,PctEMEA,PctLAmerica,PctNAmerica)
select 1,2,3,4'
exec sp_executeSQL @SQL;
谢谢
怎么样 :
Create table #TempCalcPerc
(
PctAPAC nvarchar(50),
PctEMEA nvarchar(50),
PctLAmerica nvarchar(50),
PctNAmerica nvarchar(50)
)
declare @SQL as NVARCHAR(MAX);
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 @SQL;
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.