存储过程中提示列名无效的问题,百思不得其解,特来求解?
REATE PROCEDURE SP_FillDataForDyfy
(
@Year VarChar(4)--年度
)
AS
DECLARE @Sql NVarchar(1000)
DECLARE @x decimal(18,2)
DECLARE @y decimal(18,2)
DECLARE @Dyczf_x decimal(18,2)
DECLARE @Dyczf_y decimal(18,2)
--生成之前删除原有数据
select @Dyczf_x=sum([原油商品量(吨)]) FROM Cost_Dyfy_x
select @Dyczf_y=sum([原油商品量(吨)]) FROM Cost_Dyfy_y
print @Dyczf_x
print @Dyczf_y
Declare CSR_Fyfy cursor for select ItemID,ItemName from ItemCost
Open CSR_Fyfy
Declare @p_ItemCode varchar(20)
Declare @p_ItemName varchar(100)
fetch next from CSR_Fyfy into @p_ItemCode,@p_ItemName
while (@@fetch_status=0)
begin
select @x= sum([@p_ItemName]) FROM Cost_Dyfy_x --执行到这里老提示“列名'@p_ItemName'无效”
print @x
select @Sql='insert into Cost_Dyfy (ItemCode,ItemName,Price_x,Dyzcf_x,Price_y,Dyczf_y)values('+Cast(@x AS nvarchar(30)) +')'
print @Sql
exec(@Sql)
fetch next from CSR_Fyfy into @p_ItemCode,@p_ItemName
End
Close CSR_Fyfy
Deallocate CSR_Fyfy
SET NOCOUNT OFF
GO
------------------------------------------
select @x= sum([@p_ItemName]) FROM Cost_Dyfy_x --执行到这里老提示“列名'@p_ItemName'无效”