【发布时间】:2017-07-28 10:58:57
【问题描述】:
SQL 2012
如何在替换语句的第二个参数中使用变量。
例如:
declare @new nchar (10)
declare @old nchar (10)
set @new = 'ABC'
set @old = 'DEF'
update table
set value = REPLACE (column,@old,@new)
where .....
这会运行,不会产生任何错误,但也不会更新任何内容。
如果我放弃 @old 变量并将其替换为诸如
之类的值set value = REPLACE (column,'DEF',@new)
然后它就可以正常工作了。
【问题讨论】:
-
我通过将上面的 SQL 放入存储过程中解决了这个问题,它可以正常工作。我尝试了 Udhaya 的示例,它在选择中运行良好,但在更新中没有,它给出了一个关于存储过程的错误,导致我得到结果。
标签: sql sql-server replace sql-update