ma maneira melhor de analisar valores inteiros de uma string delimitada por T-S

Tenho um procedimento armazenado SQLServer2008 R2 que contém um algoritmo para analisar números inteiros de uma sequência delimitad

Aqui está um exemplo do código SQL que criei para fazer um loop através da cadeia delimitada e extrair quaisquer números que possam existir na cadeia delimitada:

-- Create a delimited list for testing
DECLARE @NumericList nvarchar(MAX) = N'1, 33,44 ,55, foo ,666,77 77,8,bar,9,10'

-- Declare the delimiter
DECLARE @ListDelimiter VARCHAR(1) = ','

-- Remove white space from the list
SET @NumericList = REPLACE(@NumericList, ' ','');

-- Var that will hold the value of the delimited item during the while-loop
DECLARE @NumberInScope VARCHAR(MAX)

WHILE(LEN(@NumericList) > 0)
BEGIN
    -- Get the value to the left of the first delimiter.
    IF(CHARINDEX(@ListDelimiter, @NumericList) > 0)
        SET @NumberInScope = LEFT(@NumericList, CHARINDEX(@ListDelimiter, @NumericList))
    ELSE
        SET @NumberInScope = @NumericList   

    -- Remove the @NumberInScope value from the @NumericList
    SET @NumericList = RIGHT(@NumericList, LEN(@NumericList) - LEN(@NumberInScope))

    -- Remove the delimiter from the @NumberInScope
    SET @NumberInScope = REPLACE(@NumberInScope,@ListDelimiter,'')

    -- Print only the integer values
    IF(ISNUMERIC(@NumberInScope) = 1)
    BEGIN
        PRINT @NumberInScope
    END 
END

O código acima funciona bem, mas depois de revisar o código, parece-me que deve haver uma maneira mais concisa de fazer a mesma coisa. Em outras palavras, existe alguma função de string (ou qualquer nova função R2, talvez) que eu possa ignorar que eu possa implementar que reduziria o código e, esperançosamente, seria mais fácil de ler?

questionAnswers(3)

yourAnswerToTheQuestion