Can't say I'm keen on Jake's solution: that's 32 updates of a 1M row table at the least!While this function might not be very fast, it should cut things down to one pass through the table.CREATE FUNCTION RemoveChars (@Str varchar(8000), @DelPat varchar(8000))RETURNS varchar(8000)ASBEGIN DECLARE @Res varchar(8000), @i int SET @DelPat = '%[' + @DelPat + ']%' SET @Res = '' SET @i = PATINDEX(@DelPat, @Str) WHILE @i <> 0 BEGIN SET @Res = @Res + SUBSTRING(@Str, 1, @i - 1) SET @Str = SUBSTRING(@Str, @i + 1, 8000) SET @i = PATINDEX(@DelPat, @Str) END SET @Res = @Res + @Str RETURN @ResENDUPDATE TableName SET Col1 = RemoveChars(Col1, '^ A-Z0-9'), Col2 = RemoveChars(Col2, '^ A-Z0-9'), Col3 = RemoveChars(Col3, '^ A-Z0-9'), Col4 = RemoveChars(Col4, '^ A-Z0-9'), Col5 = RemoveChars(Col5, '^ A-Z0-9'), Col6 = RemoveChars(Col6, '^ A-Z0-9')