Thanks for the script, I like they way you created the tally table on the fly lilke that, I never thought of doing that! Here is what I've been using to do the same thing, it's pretty easy to modify to include/exclude numerics, spaces, certain special characters etc... which is why I like it.
DECLARE @data VARCHAR(100)
SET @data = '!2131231Atif123123 234234Sheikh6546'
WHILE PATINDEX('%[^a-z ]%', @data) > 0
SET @data = STUFF(@data, PATINDEX('%[^a-z ]%', @data), 1, '')
RTRIM(LTRIM(@data)) AS Data