使用sp_executesql时列名无效

使用sp_executesql时列名无效,sql,sql-server-2005,Sql,Sql Server 2005,当我试图在存储过程中执行动态查询时,我得到了一个错误 我的代码是: DECLARE @Query nvarchar(max) DECLARE @AllowanceBadge nvarchar(20) DECLARE @AllowFieldName nvarchar(50) DECLARE @Amount Decimal SET @AllowanceBadge ='SIP0980' SET @AllowFieldName ='xxxxx' SET @Amount = 100 SET @Quer

当我试图在存储过程中执行动态查询时,我得到了一个错误

我的代码是:

DECLARE @Query nvarchar(max)
DECLARE @AllowanceBadge nvarchar(20)
DECLARE @AllowFieldName nvarchar(50)
DECLARE @Amount Decimal
SET @AllowanceBadge  ='SIP0980'
SET @AllowFieldName ='xxxxx'
SET @Amount = 100

SET @Query = 'UPDATE tbl_PayrollTransaction SET '+ @AllowFieldName +' = '+convert(varchar,@Amount) + 'WHERE BadgeNumber = '+@AllowanceBadge
            EXEC SP_EXECUTESQL @Query
我有以下错误

味精207,第16级,状态1,第1行
列名“SIP0980”无效

告诉我哪里错了


谢谢

需要有关SIP0890的报价吗

DECLARE @Query nvarchar(max)
DECLARE @AllowanceBadge nvarchar(20)
DECLARE @AllowFieldName nvarchar(50)
DECLARE @Amount Decimal
SET @AllowanceBadge  ='SIP0980'
SET @AllowFieldName ='xxxxx'
SET @Amount = 100

SET @Query = 'UPDATE tbl_PayrollTransaction SET '+ @AllowFieldName +' = '+convert(varchar,@Amount) + 'WHERE BadgeNumber = '''+@AllowanceBadge+''''
            EXEC SP_EXECUTESQL @Query