Bande de caractères spéciaux dans SQL sans boucle?

Est-il un moyen de la bande de caractères spéciaux (en laissant juste alphanumérique) à partir d'une chaîne/champ dans SQL server sans utiliser de boucle /fonction personnalisée?

Jusqu'à présent, le meilleur que j'ai trouvé est:

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

Sur certains serveurs je n'ai pas les privilèges pour cread fonctions définies par l'utilisateur, donc je aimerais être en mesure d'obtenir le même résultat sans.
J'ai aussi des soucis sur l'efficacité/performances de la boucle (bien que je pense que même une fonction intégrée/méthode serait probablement lui-même utilise une boucle).

Grâce

J'ai soemtimes vu des gens suggèrent démontage des chaînes à une table comme la chose et de se joindre à une table de gardien de caractères. Voici une discussion qui pourraient vous intéresser

OriginalL'auteur Lee Tickett | 2011-12-12