删除 SQL 服务器中字符集的函数

Function to remove set of character in SQL Server

我有以下函数从给定字符串中删除字符集:

ALTER function removalspchar(@Name varchar(30))
returns varchar(500)
As 
Begin 
declare @sub char(1)

while patindex('%[-:;&, ]%',@Name)>0
begin 
 set @sub=substring(@Name,patindex('%[-:;&, ]%',@Name),1)
 set @Name = replace(@Name,@sub,'')
end

return @Name
End

select dbo.removalspchar('CORP - Sovereign & Public Finance')

但以下函数的输出为:CORPSovereignPublicFina 而不是 CORPSovereignPublicFinance。

谁能告诉我我做错了什么或解决这个问题的更好方法。

也许,你应该增加参数 (@Name varchar(30)) 的长度,比如 (@Name varchar(100))