SQL 替换字符串中多个字符的函数

SQL function to replace many characters in a string

在 SQL 服务器中使用函数更改字符串中的许多错误字符的有效方法是什么?

暂时我使用: 更新 my_table

UPDATE dbo.my_table
SET [Description] = REPLACE([Description], '¿', N'A')
UPDATE dbo.my_table
SET [Description] = REPLACE([Description], '!', N'B')

我有很多这样的替代品。我欢迎这样的东西:

dbo.function_replace_all_bad_characters(string)

TSQL 不支持正则表达式,因此您需要多次替换。但是,您可以将 REPLACES 连接到一个更新语句中,而不是多次更新,例如

UPDATE dbo.my_table
SET [Description] = REPLACE(REPLACE([Description], '¿', N'A'), '!', N'B')

您可以像这样定义自己的函数

CREATE FUNCTION dbo.function_replace_all_bad_characters(@str NVARCHAR(MAX))
RETURNS NVARCHAR(MAX)
AS
    RETURN REPLACE(REPLACE(@str, '¿', N'A'), '!', N'B')

然后像这样使用函数

UPDATE dbo.my_table
SET [Description] = dbo.function_replace_all_bad_characters([Description])