用ASCII字符替换引号

时间:2015-03-25 16:38:58

标签: sql sql-server tsql dynamic-sql

我有一个表,用于存储来自给定表的属性名称和目标值的一组属性,以将其更新为。

例如:

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'

1 个答案:

答案 0 :(得分:1)

试试这个......

选择''''+替换(@Word,'''','''+ CHAR(39)+''')+''''

这样可以得到你想要的结果。