SQL SERVER存储过程中如何产生五位数的随机整数??

解决方案 »

  1.   

    select cast(10000+90000*rand() as int)
      

  2.   

    select abs(checksum(newid()) % 100000)
      

  3.   

    产生一个5位随机数插入到表A的字段A中,但不能与字段A中数据重复,
    也就是说新产生的随机数是以前没有产生过的。测试前建立表TB,字段RndNum,类型int
    =======================================
    DECLARE @a int, @b bit
    SET @b = 0 WHILE @b = 0 
        BEGIN
            SELECT @a = Cast(rand() * 100000 AS int) 
            print @a        if not exists (SELECT * FROM TB WHERE RndNum = @a )
            BEGIN                  
                INSERT INTO tb (RndNum) VALUES (@a)
                SET @b = 1 
            END 
        END
      

  4.   

    to: bugchen888(臭虫) 
    不好意思丫,你的这方法有时产生的随机数怎么是四位数?
      

  5.   

    select 10000 + abs(checksum(newid()) % 90000)
    或创建试图来实现直接用rand() 在一个程序段里会返回同样的值
      

  6.   

    产生随机数,就是这个吧,不论是不是在存储过程里,感觉类似于 select getdate()
      

  7.   

    试验一下
    select 10000 + abs(checksum(newid()) % 90000) from sysobjects
    select cast(10000+90000*rand() as int) from sysobjects
    就会明白它们之间的区别了
      

  8.   

    select cast(100000*rand() as int)