我正在尝试替换var binary,但我没有成功。
我的更新声明是:
update Test
set Sect_ID = cast(replace(Sect_ID, '2', '3') as varbinary);
它不会取代任何东西。它仍然是旧的价值。
答案 0 :(得分:0)
如果Sect_ID
是varbinary(max)
列,您是否尝试将其投放到varchar(max)
函数调用中的REPLACE()
?
使用此示例架构,事情似乎对我有用:
CREATE TABLE Foo (Bar varbinary(max))
INSERT INTO Foo (Bar)
VALUES (CAST('1234' AS varbinary(MAX)))
现在运行此命令,您将看到值按预期更新:
SELECT *
FROM Foo
UPDATE Foo
SET Bar = CAST(REPLACE(CAST(Bar AS varchar(MAX)), '2', '5') AS varbinary(MAX));
SELECT *
FROM Foo