从字符串中删除特殊字符的更好解决方案

时间:2015-01-16 14:14:38

标签: sql sql-server-2008 function

我有一个包含450,000个型号名称的表。我需要从模型名称中删除特殊字符并将其写入表中的新列。

  1. 我有一个函数用modelname替换所有模型名称作为输入参数,并返回干净的模型名称。
  2. 过程使用型号名称调用上述函数。
  3. 问题是需要大约1小时40分钟才能完成50,000条记录。按照这个速度,完成这个过程需要永远!有没有更好的方法来做到这一点?替换本来是一个更好的解决方案,但我没有完整的特殊字符列表!

    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
    

0 个答案:

没有答案