SQL Server - 替换

Dav*_*Dav 0 sql-server replace

我的查询有什么问题,它不起作用

DECLARE @_old nvarchar = '@35_D'
DECLARE @_new nvarchar = '@Dima'
UPDATE       ShoppingComment SET Commnet =Replace(Commnet,@_old,@_new)
Run Code Online (Sandbox Code Playgroud)

它没有显示错误,但查询不是替换,但是当我在没有DECLARE的情况下使用它时,它工作正常

Pரத*_*ீப் 5

Datatype 代码中缺少长度.

来自MSDN

如果未在数据定义或变量声明语句中指定n,则默认长度为1.

因此,只有第一个字符将分配给变量

DECLARE @_old nvarchar(50) = '@35_D' --here
DECLARE @_new nvarchar(50) = '@Dima' --here 
UPDATE       ShoppingComment SET Commnet =Replace(Commnet,@_old,@_new)
Run Code Online (Sandbox Code Playgroud)