--生成300個8位不重復純數字隨機數
DECLARE @i INT=0; DECLARE @j INT; DECLARE @qnum INT=300; --生成隨機數的數量 SET NOCOUNT ON CREATE TABLE #temp_Table(num INT) WHILE(@i<@qnum) BEGIN SELECT @j = cast( floor(rand()*(99999999-10000000)+10000000) as int) IF(NOT EXISTS(SELECT num FROM #temp_Table WHERE num=@j )) BEGIN INSERT #temp_Table (num) VALUES (@j) SET @i+=1; END END SELECT DISTINCT num FROM #temp_Table DROP TABLE #temp_Table
SELECT RAND((DATEPART(mm, GETDATE()) * 100000) + (DATEPART(ss, GETDATE()) * 1000) + DATEPART(ms, GETDATE())) 在SQL試一下能否滿足
--創建視圖
create view myview as select re=rand()
--自定義函數:取得指定范圍的隨機數
create function mydata(
@a int,
@b int)
returns decimal(38,0)
as
begin
declare @r decimal(38,0)
select @r=cast(re*(@b-@a)+@a as decimal(38,0)) from myview
return(@r)
end
go
--調用(可以隨意指定你要的數據范圍)
select user_no,dbo.mydata(1000,9999) number from table1
--可以在你原來的查詢基礎上增加一列number,如不增加列,
--那就把上面的結果放入一個臨時表 #a,然後update
--如:
update table1 set number1=a.number from #a a,table1 b where a.user_no=b.user_no