SQL SERVER2000随机数问题 请问一下,谁知道SQL SERVER2000里面的生成随机数的rand(seed) 里面的那个“seed”有什么功能啊,我总感觉加不加它,都 一样啊! 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 seed是给出种子值或起始值的整型表达式(tinyint、smallint 或 int)。----------select stuff(rand(),1,2,'')--返回随机整数select 1+cast(rand()*10 as int)--返回1-10的随机整数 加上一个定值seed,可以使每次产生的随机值一样,调试时使用的.一时也说不怎么清楚. seed 是种子,也就是起始值,给与不给得到的值是不同的,关键看LZ需要取怎样的随机值了select rand(),rand(1),rand(3),rand(5) 联机丛书中的片段:在单个查询中反复调用 RAND() 将产生相同的值。示例下例产生 4 个通过 RAND 函数产生的不同的随机值。DECLARE @counter smallintSET @counter = 1WHILE @counter < 5 BEGIN SELECT RAND(@counter) Random_Number SET NOCOUNT ON SET @counter = @counter + 1 SET NOCOUNT OFF ENDGO 使用 RANDRAND 函数计算 0 到 1 之间的随机浮点数,而且可选择以 tinyint、int 或 smallint 值作为要计算的随机数的起始点。下面的示例计算两个随机数。第一个 RAND() 函数让 Microsoft® SQL Server™ 选取种子值,第二个 RAND() 函数使用值 3 作为起始位置。SELECT RAND(), RAND(3)RAND 函数是伪随机的数字生成器,它用与 C 运行时库 rand 函数类似的方法进行操作。如果没有提供种子值,系统将生成它自己的不定种子值。如果用种子值调用 RAND,则必须使用不定的种子值来生成随机数。如果用同一种子值多次调用 RAND,它将返回相同的生成值。下面的脚本中,对 RAND 的调用都返回相同的值,这是因为它们都使用了相同的种子值:SELECT RAND(159784)SELECT RAND(159784)SELECT RAND(159784)通常用 RAND 生成随机数的方法是,用相对不定的某个值作为种子值,例如累加 GETDATE 的几个部分:SELECT RAND( (DATEPART(mm, GETDATE()) * 100000 ) + (DATEPART(ss, GETDATE()) * 1000 ) + DATEPART(ms, GETDATE()) )使用基于 GETDATE 的算法生成种子值时,如果在算法中所用的最小 datepart 的时间间隔内多次调用 RAND,RAND 仍会生成重复值。如果对 RAND 的调用包括在单个批处理中,尤其可能出现这种情况。在单个批处理中对 RAND 的多次调用可在同一毫秒(DATEPART 的最小增量)内执行。这种情况下,请用基于除时间之外的值以生成种子值。 求助:表的删除 求时间差算法 sql server 2005如何进行异地备份 存储过程遇到的怪问题 ? 两个系统存储过程之间的奇怪现象 新建表格为何无效! 在线等 关于复制表格框架的问题 我怎么样才知道我的库中有那些系统表和用户表?? sql server 2005 语言问题 怎么在存储过程中判断一个表是否已经在数据库中存在? 请教一个sql语句 求一个更新时间触发器 没分了,菜鸟请教模糊查询
----------select stuff(rand(),1,2,'')--返回随机整数select 1+cast(rand()*10 as int)--返回1-10的随机整数
下例产生 4 个通过 RAND 函数产生的不同的随机值。DECLARE @counter smallint
SET @counter = 1
WHILE @counter < 5
BEGIN
SELECT RAND(@counter) Random_Number
SET NOCOUNT ON
SET @counter = @counter + 1
SET NOCOUNT OFF
END
GO
RAND 函数计算 0 到 1 之间的随机浮点数,而且可选择以 tinyint、int 或 smallint 值作为要计算的随机数的起始点。下面的示例计算两个随机数。第一个 RAND() 函数让 Microsoft® SQL Server™ 选取种子值,第二个 RAND() 函数使用值 3 作为起始位置。SELECT RAND(), RAND(3)RAND 函数是伪随机的数字生成器,它用与 C 运行时库 rand 函数类似的方法进行操作。如果没有提供种子值,系统将生成它自己的不定种子值。如果用种子值调用 RAND,则必须使用不定的种子值来生成随机数。如果用同一种子值多次调用 RAND,它将返回相同的生成值。下面的脚本中,对 RAND 的调用都返回相同的值,这是因为它们都使用了相同的种子值:SELECT RAND(159784)
SELECT RAND(159784)
SELECT RAND(159784)通常用 RAND 生成随机数的方法是,用相对不定的某个值作为种子值,例如累加 GETDATE 的几个部分:SELECT RAND( (DATEPART(mm, GETDATE()) * 100000 )
+ (DATEPART(ss, GETDATE()) * 1000 )
+ DATEPART(ms, GETDATE()) )使用基于 GETDATE 的算法生成种子值时,如果在算法中所用的最小 datepart 的时间间隔内多次调用 RAND,RAND 仍会生成重复值。如果对 RAND 的调用包括在单个批处理中,尤其可能出现这种情况。在单个批处理中对 RAND 的多次调用可在同一毫秒(DATEPART 的最小增量)内执行。这种情况下,请用基于除时间之外的值以生成种子值。