まず、0〜9の数字のテーブルを作成します
create table dbo.Digits (digit tinyint not null Primary Key)
insert into dbo.Digits values (0), (1), (2), (3), (4), (5), (6), (7), (8), (9)
次に、1から100までカウントする次のクロス結合を生成できます。
select
D2.digit * 10 +
D1.digit + 1 as n
from dbo.Digits D1,
dbo.Digits D2
order by n
1から1000までカウントするには、クロス結合を追加する必要があります。
select
D3.digit * 100 +
D2.digit * 10 +
D1.digit + 1 as n
from dbo.Digits D1,
dbo.Digits D2,
dbo.Digits D3
order by n
1からxまでカウントするには(x <= 1000)::
select top x
D3.digit * 100 +
D2.digit * 10 +
D1.digit + 1 as n
from dbo.Digits D1,
dbo.Digits D2,
dbo.Digits D3
order by n