DECLARE @i INT
DECLARE @j INT
DECLARE @m INT
DECLARE @n INT
DECLARE @l INT
DECLARE @c CHAR(1)
DECLARE @S VARCHAR(4000)
DECLARE @T VARCHAR(4000)
SET @i=1
SET @n=1000
SET @S='1'
WHILE @n>=1
BEGIN
SET @l=LEN(@S)
SET @m=0
SET @T=''
WHILE @l>=1
BEGIN
SET @c=SUBSTRING(@s,@l,1)
SET @j=CONVERT(int,@c)*@n
IF @m=0
SET @T=CONVERT(VARCHAR(10),@j)
ELSE
SET @T=CONVERT(VARCHAR(10),(@j +CONVERT(INT,LEFT(@T,LEN(@T)-@m))))+RIGHT(@T,@m)
SET @l=@l-1
SET @m=@m+1
END
SET @S=@T
SET @n=@n-1
END
SELECT FLOOR(SUM(LOG10(number)))+1 AS x,LEN(@T) AS y,@T AS z
FROM master..spt_values
WHERE type='P' AND number BETWEEN 1 AND 1000