Here is my approach. Very simple with a Tally table (a table that has only a column with a value of 1 → X). There is no need for recursion, and it will be much faster in large tables.
Please note that we only make a Tally table of 100 rows, feel free to expand it as much as you want. If you are too crazy, you may need another cross join in sys.sysobjects to host. The actual request is at the bottom, as you can see it very easily.
SELECT TOP 100 IDENTITY( INT,1,1 ) AS N INTO
source share