Удаление специальных символов в SQL без цикла?

Есть ли способ удалить специальные символы (оставив только буквенно-цифровые) из строки / поля на сервере SQL без цикла / пользовательского function?

На данный момент лучшее, что я придумал, это:

Create Function [dbo].[strip_special](@Temp VarChar(1000))
Returns VarChar(1000)
AS
Begin
    While PatIndex('%[^a-z0-9]%', @Temp) > 0
        Set @Temp = Stuff(@Temp, PatIndex('%[^a-z0-9]%', @Temp), 1, '')
    Return @TEmp
End

На некоторых серверах у меня нет прав на создание пользовательских функций, поэтому я хотел бы иметь возможность достичь того же результата без . У меня также есть опасения по поводу эффективности / производительности цикла (хотя я предполагаю, что даже встроенная функция / метод, вероятно, сама будет использовать цикл).

Спасибо

9
задан Lee Tickett 12 December 2011 в 10:41
поделиться