Sql 从字符串中删除特殊字符的更好解决方案
我有一张45万型号的桌子。我需要去掉模型名称中的特殊字符,并将其写入表中的新列 我有一个函数,用modelname作为输入参数替换所有模型名,并返回干净的模型名。 过程使用模型名调用上述函数。 问题是,大约需要1小时40分钟才能浏览50000条记录。以这种速度,完成这一过程将花费永远的时间!有没有更好的办法?替换本来是一个更好的解决方案,但我没有完整的特殊字符列表Sql 从字符串中删除特殊字符的更好解决方案,sql,sql-server-2008,function,Sql,Sql Server 2008,Function,我有一张45万型号的桌子。我需要去掉模型名称中的特殊字符,并将其写入表中的新列 我有一个函数,用modelname作为输入参数替换所有模型名,并返回干净的模型名。 过程使用模型名调用上述函数。 问题是,大约需要1小时40分钟才能浏览50000条记录。以这种速度,完成这一过程将花费永远的时间!有没有更好的办法?替换本来是一个更好的解决方案,但我没有完整的特殊字符列表 Function [dbo].[RemoveSpecialCharaters] (@model nvarchar(255)) R
Function
[dbo].[RemoveSpecialCharaters] (@model nvarchar(255))
Returns nvarchar(255)
as
BEGIN
Declare @search varchar(50)
SET @search ='%[^a-zA-Z0-9]%'
while PATINDEX(@search,@model) > 0
BEGIN
set @model = STUFF(@model,PatIndex(@search,@model),1,'')
END
Return @model
END
你能发布你用来删除特殊字符的函数吗?你要浏览你的记录吗?您使用游标还是普通update语句?这个数据库管理系统是什么?Oracle,SqlServer。。。。请将这些详细信息添加到您的问题中。@NoDisplayName将该函数添加到主帖子中。@HansKesting Oops!更新版本为SQL server 2008。我使用光标获取模型名并将其传递给函数。基本上是为每个modelname调用函数!与光标相比,更新表格集newmodelname=dbo.removespecialcharactersoldmodelname的性能如何?也许先看看有限的一套。虽然我不确定是否可以在一个事务中更新所有450.000行。