SqlServer 2008 创建测试数据

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了SqlServer 2008 创建测试数据相关的知识,希望对你有一定的参考价值。

包含要点: 数据库的循环 、 insert select 句式   、 随机数(rand()函数)、绝对值(abs()函数

DECLARE @starttime varchar(50)
  DECLARE @endtime varchar(50)
  DECLARE @randomvalue float
  SET @starttime=2017-09-15 00:15:00.000
  SET @endtime=2017-10-20 00:00:00.000
--  set @randomvalue=floor(rand()*10)
-- -- select CONVERT(varchar(50), DATEADD(mi,15,@starttime),121)
--select [TagID],[Value][email protected],[StartValue][email protected],CONVERT(varchar(50),DATEADD(mi,15,[StartTime]),121),[EndValue][email protected],CONVERT(varchar(50),DATEADD(mi,15,[EndTime]),121)
--from [dbo].[DimTagMinuteData] where TagID in (1,
--                                                2,3,4,5,6,
--                                                7,8,9,10,11,
--                                                12,13,14,15,16,
--                                                17,18,19,20
--                                                )
--and [email protected] and EndTime=CONVERT(varchar(50),DATEADD(mi,15,@starttime),121)
  WHILE @starttime<=@endtime
     begin
        set @randomvalue=floor(rand()*10)
        IF @starttime<=@endtime
            BEGIN
                insert INTO DimTagMinuteData ([TagID],[Value],[StartValue]
      ,[StartTime]
      ,[EndValue]
      ,[EndTime])
                select [TagID] , 
                ABS([Value]-@randomvalue)    ,
                ABS([StartValue]-@randomvalue),
                CONVERT(varchar(50),DATEADD(mi,15,[StartTime]),121),
                ABS([EndValue]-@randomvalue),
                CONVERT(varchar(50),DATEADD(mi,15,[EndTime]),121)
                from [dbo].[DimTagMinuteData] where TagID in (1,
                                                                2,3,4,5,6,
                                                                7,8,9,10,11,
                                                                12,13,14,15,16,
                                                                17,18,19,20
                                                                )
                and StartTime=@starttime and EndTime=CONVERT(varchar(50),DATEADD(mi,15,@starttime),121)
            end
            
        else    
            begin
                print stop
            end    
            
        set @starttime= CONVERT(varchar(50), DATEADD(mi,15,@starttime),121)
     end
     
    -- 随机数
  select floor(rand()*100)

当然 循环的时候 可以不用 if else 判断

 



以上是关于SqlServer 2008 创建测试数据的主要内容,如果未能解决你的问题,请参考以下文章

缺少 SQL SERVER 2014 代码片段

SQLServer 2008中SQL增强之二 Top新用途

sqlserver 2008问题!

VS2013连接SQL Server 2008 R2测试

易语言读sqlserver2008日期型字段

5.SQL Server 2008 数据库