日期:2014-05-18  浏览次数:20450 次

一个生成测试数据的问题
我现在建立了一个表
create   table   vt(id   int   identity,starttime   datetime,endtime   datetime)

其中starttime和endtime分别代表一个有效时间段的起始和结束时间
我现在想在这个表中自动生成一定数量的记录,要求就是这些时间的生成要是随机的,就是每重新生成一次里面的记录数据会不同.
请问怎么写sql语句?
谢谢!在线等

------解决方案--------------------
create table vt(id int identity,starttime datetime,endtime datetime)
go

declare @i int
select @i = 0
while @i <1000
begin

insert into vt(starttime,endtime) select cast(rand()*100000 as datetime),cast(rand()*100000 as datetime)
select @i=@i+1
end

go
select * from vt
drop table vt
------解决方案--------------------

create table vt(id int identity,starttime datetime,endtime datetime)
go

declare @i int
select @i = 0
while @i <1000
begin

declare @start datetime
declare @end datetime
set @start=cast(rand()*100000 as datetime)
set @end=cast(rand()*100000 as datetime)
if @start <@end
begin
insert into vt(starttime,endtime) select @start,@end
select @i=@i+1
end
else
set @i=@i+1
end