|  | Posted by Hugo Kornelis on 06/10/07 23:02 
On Sat, 9 Jun 2007 21:19:25 +0000 (UTC), Erland Sommarskog wrote:
 >Hugo Kornelis (hugo@perFact.REMOVETHIS.info.INVALID) writes:
 >> On Sat, 9 Jun 2007 19:19:45 +0000 (UTC), Erland Sommarskog wrote:
 >>
 >>>chico_yallin@yahoo.com (chico_yallin@yahoo.com) writes:
 >>>> I just wana make a random id number based on4 digits-for examples??
 >>>
 >>>checksum(newid()) is better than the rand() function.
 >>
 >> Hi Erland,
 >>
 >> What exactly makes checksum(newid()) better than rand() ?
 >
 >Here is a practical reason:
 >
 >   select rand(), checksum(newid())
 >   from  (select n = 1 union all select 2 union all select 4) as x
 
 Hi Erland,
 
 Sorry, I should have been more clearer. I know that rand() is called
 just once for a set-based query, returning the same value for each row.
 In this case, the original poster wanted "a" random number, so I assumed
 that one was enough - that's why I didn't understand why you preferred
 newid().
 
 >I believe that there also issues with the randomness of rand(), although
 >I don't remember the exact details. Steve Kass knows the full story.
 
 Let's hope he chimes in, then.
 
 --
 Hugo Kornelis, SQL Server MVP
 My SQL Server blog: http://sqlblog.com/blogs/hugo_kornelis
  Navigation: [Reply to this message] |