При указании строкового литерала в динамической строке SQL вы должны избежать одного цитаты с другой одной цитатой (например: ''
, не "
что двойная цитата) Таким образом, запрос будет выглядеть следующим образом:
SELECT @QUERY1 = 'UPDATE [dbo].[ATAB] SET PAYMCODE=''CHQ'' WHERE RATE=1'
Это переведет его:
UPDATE [dbo].[ATAB] SET PAYMCODE='CHQ' WHERE RATE=1
вы также можете использовать ответ Nate S, если вы хотите сохранить CHQ
в переменную, или использовать EXEC
с указанием параметров, например:
DECLARE @Paymcode varchar(3) = 'CHQ'
DECLARE @SQL nvarchar(max)
DECLARE @Params nvarchar(max)
SET @SQL = N'UPDATE [dbo].[ATAB] SET [email protected] WHERE RATE=1'
SET @Params = N'@innerPaymcode varchar(3)'
EXEC sp_executesql @SQL, @innerPaymcode = @Paymcode
Это также может работать или использовать 'EXEC' с указанием параметров. –
это также позволит централизованно обновлять код оплаты ... не то, что в этом случае необходимо его –