2012-01-04 2 views
2

Когда я пытаюсь выполнить динамический запрос внутри хранимой процедуры, я получаю сообщение об ошибке.Недопустимое имя столбца при использовании sp_executesql

Мой код:

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 = '[email protected] 
      EXEC SP_EXECUTESQL @Query 

Я получаю следующее сообщение об ошибке

Msg 207, Level 16, State 1, Line 1
Неверное имя столбца 'SIP0980'.

Сообщите мне, где я ошибаюсь.

Благодаря

ответ

4

нужны кавычки 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 = '''[email protected]+'''' 
      EXEC SP_EXECUTESQL @Query 
+0

... Да это работает ... спасибо. – selva

Смежные вопросы