如何将动态SQL Server查询和变量的结果插入临时表的同一行。
这是临时表(#temp)的格式
create TABLE #temp (YEAR INT, ACC_AMOUNT Money, REJ_AMOUNT Money, OUT_AMOUNT Money,TOT_AMOUNT Money)
存储的PROC由
执行exec sp_executesql @pSQL
并返回应该进入ACC_AMOUNT,REJ_AMOUNT,OUT_AMOUNT列的值。
14569849.11 696235.49 1353464.92 16619549.52
我想为Year插入一个变量(@pACCU_YEAR)和SP的结果,并在同一行中插入dyanmic查询。这是错误的,但这会让你知道我的意思。
insert into #temp (YEAR)
values (@pACCU_YEAR)
insert into #temp (ACC_AMOUNT , REJ_AMOUNT, OUT_AMOUNT,TOT_AMOUNT)
exec sp_executesql @pSQL
这将导致
YEAR ACC_AMOUNT REJ_AMOUNT OUT_AMOUNT TOT_AMOUNT
2014 NULL NULL NULL NULL
NULL 14569849.11 696235.49 1353464.92 16619549.52
我想:
YEAR ACC_AMOUNT REJ_AMOUNT OUT_AMOUNT TOT_AMOUNT
2014 14569849.11 696235.49 1353464.92 16619549.52
答案 0 :(得分:2)
Select @Year [Year]
,Acc_Amount
,other fields....
FROM #Temp
回答你评论中提出的问题。
运行@pSql后使用此选项。将年份列离声明。
或者,在它运行之后:
update #temp
SET [Year]=@Year
答案 1 :(得分:1)
@pSQL
内的代码是什么?为什么不在动态查询中执行INSERT
,如
declare @pSQL varchar(max);
set @pSQL = 'some sql command;
some_other_sql_command;
.......
insert into #temp (ACC_AMOUNT , REJ_AMOUNT, OUT_AMOUNT,TOT_AMOUNT)
select blah,blah1,blah2,blah3
from blah_table;';
exec sp_executesql @pSQL;
你能告诉我一个如何选择一个列的例子 变量不在表格内?
使用与
相同的SELECT
语句
select @var1 as some_name, @var2 as some_other_name
as some_name
是可选的。这是为所选字段提供有意义的名称。