请问:怎么根据某个字段的值生成相应条数的数据记录

请教:如何根据某个字段的值生成相应条数的数据记录?
比如一个表:

ID VAL
1 3
2 4
3 2

需要的结果是:
ID VAL ABF
1 3 1
1 3 2
1 3 3
2 4 1
2 4 2
2 4 3
2 4 4
3 2 1
3 2 2


谢谢!





------解决方案--------------------
SQL code
if object_id('[TB]') is not null drop table [TB]
go
create table [TB] (ID int,VAL int)
insert into [TB]
select 1,3 union all
select 2,4 union all
select 3,2

select * from [TB]


SELECT TB.id,TB.val,M.number+1 AS VBL
FROM dbo.TB
INNER JOIN master..spt_values M ON M.number <tb.val AND M.number >=0 AND M.type  ='P'

/*
id    val    VBL
1    3    1
1    3    2
1    3    3
2    4    1
2    4    2
2    4    3
2    4    4
3    2    1
3    2    2*/