Transact- SQL do Microsoft SQL tem a capacidade de tirar caracteres alfa , mas deixar caracteres numéricos em uma string , ele só exige a criação de uma função definida pelo usuário. Você pode querer fazer isso em casos em que há um campo numérico no banco de dados e você deseja proteger a integridade do seu instrução de inserção limpando os dados antes de tentar a inserção. Na maioria dos casos , toda a instrução de inserção falhará se houver um caractere alfabético em um campo numérico . Instruções 
 um 
 Em Microsoft SQL , criar uma função definida pelo usuário, como : 
 
 CRIAR dbo.UDF_NumericOnlyChars FUNÇÃO 
 
 ( 
 
 @ cadeia VARCHAR (8000) 
 
 ) 
 
 RETURNS VARCHAR ( 8000) 
 
 AS 
 
 BEGIN 
 
 DECLARE @ IncorrectCharLoc SMALLINT 
 
 SET @ IncorrectCharLoc = PATINDEX ( '% [^ 0-9] % ', @ string) 
 
 ENQUANTO @ IncorrectCharLoc > 0 
 
 BEGIN 
 
 SET @ NumericString = STUFF ( @ NumericString , @ IncorrectCharLoc , 1, '') 
 
 SET @ IncorrectCharLoc = PATINDEX ( '% [^ 0-9] % ', @ NumericString ) 
 
 END 
 
 Se ( @ NumericString ='' ) 
 
 SET @ NumericString = '0 ' - Isto irá assegurar que uma seqüência de números é devolvido 
 
 DEVOLVER @ NumericString 
 
 End of 
 GO 
 
 isto é baseado fora da função definida pelo usuário criado por Pinal Dave 
 2 
 Use a função assim: . 
 
 Selecione [dbo] UDF_NumericOnlyChars ( ' sadDs132 # dds @ 19 ') 
 
 que retornará : . 
 
 13219 
 3 
 Use a função em uma coluna da tabela para retornar apenas os dígitos numéricos na seqüência : 
 
 Selecione nome, sobrenome , telefone, UDF_NumericOnlyChars (Telefone) como " NumberOnly 'de tblPeople 
 
 que retornará : 
 
 Nome Sobrenome Telefone NumberOnly 
 
 -------------------------------------- ----------------------------- 
 
 John Doe (888) 555-1212 8885 551212