用 ASCII 字符替换引号

Replace Quotes by ASCII chars

我有 table 存储给定 table 的一组属性,属性名称和要更新到的目标值。

例如:

AttributeName   | TargetValue
CustomerName    | Tom
CustomerAddress | The ' road
...

如您所见,目标值中可能存在单引号。

我想要创建以下输出的动态 sql:

UPDATE T1
SET CustomerName = 'Tom',
CustomerAddress = 'The ' + CHAR(39) + ' road'
...
FROM Target T1
INNER JOIN MyList T2
ON...

简单来说: 从下面的变量创建

DECLARE @Word NVARCHAR(MAX) = 'I '' have '' quotes'
SELECT @Word

以下输出:

'I ' + CHAR(39) + ' have ' + CHAR(39) + ' quotes'

试试这个....

select '''' + replace(@Word, '''', ''' + CHAR(39) + ''') + ''''

这会让你得到你想要的结果。