-按数量复制记录的SQL语句

高手请进-------求一个按数量复制记录的SQL语句
各位大虾,是这样的..

用户有一个表Products,结构如下:

物品名称 数量 单位 部门
------------ -------- -------  ---------
振动砂 1 台 木盒厂
刨花机 2 台 木盒厂
万能锯 1 台 木盒厂



现在求一SQL语句,当数量大于1时,
自动按数量多少复制多少条相同的记录到一个表里.
得出以下结果:

物品名称 数量 单位 部门
------------ -------- -------  ---------
振动砂 1 台 木盒厂
刨花机 1 台 木盒厂
刨花机 1 台 木盒厂
万能锯 1 台 木盒厂
...






------解决方案--------------------

create table Products
(物品名称 varchar(10),数量 int,单位 varchar(5),部门 varchar(10))

insert into Products
 select '振动砂',1,'台','木盒厂' union all
 select '刨花机',2,'台','木盒厂' union all
 select '万能锯',1,'台','木盒厂'


select a.物品名称,1 '数量',a.单位,a.部门
 from Products a
 cross apply
 (select number from master.dbo.spt_values 
  where type='P' and number between 1 and a.数量) b

/*
物品名称       数量          单位    部门
---------- ----------- ----- ----------
振动砂        1           台     木盒厂
刨花机        1           台     木盒厂
刨花机        1           台     木盒厂
万能锯        1           台     木盒厂

(4 row(s) affected)
*/