【发布时间】:2017-07-11 23:45:24
【问题描述】:
我们有下面的查询,它被编写来用 HTML 等价物 (&) 替换备忘录字段中的任何 &。在编写时,我们没有考虑到字段中可能存在其他以“&”开头的 HTML 标记(即 — “等)。因为我们必须确保所有 & 符号在单独使用时是 HTML 等价的,而不是另一个的一部分标记我们必须跳过那些在另一个标记的一部分。也就是说,可以以 & 开头的最短 HTML 标记似乎是 3 个字符,最长的似乎是 6 个字符,所以 & _ _ _ ; 到 & _ _ _ _ _ _ ; 长...有什么想法可以更新 where 子句,这样它就不会更新在 & 之后的接下来的 4-7 个字符中以“;”开头的任何 &?谢谢。
UPDATE STOCKMEM
SET INETFDESC = CAST(
REPLACE(
REPLACE(
CAST(INETFDESC as NVarchar(MAX))
,'&','&')
, '&', ,'&')AS NText)
WHERE INETFDESC LIKE '%&[^amp;]%'
【问题讨论】:
-
不确定这是否是一个选项,但如果我遇到这个问题,我会将 SSIS 与 C# 脚本任务一起使用
-
这些事情通常使用编程语言比使用 sql 处理得更好。
标签: sql sql-server sql-server-2014