巧用UUID生成随机数或随机字符串

来源:互联网 发布:大数据的益处 编辑:程序博客网 时间:2024/06/06 13:56
--前3条数据use Testgoselect top 3 R1 = RAND(),R2 = RAND()From sys.objects--随机生成区间--Declare @RandMin int ,@RandMax int--select @RandMin = -100 ,@RandMax = 100--select top 100 RandValue = ABS(CHECKSUM(NewID()))%(1+@RandMax - @RandMin) + @RandMin--From sys.objects Declare @RandMin datetime ,@RandMax datetimeselect @RandMin = '20100101' ,  @RandMax = '20101231'select top 100 RandValue = Dateadd(Hour,ABS(CHECKSUM(NewID()))%(1+DateDiff(Hour,@RandMax,@RandMin)),@RandMin)From sys.objects --select * from ::fn_helpcollations()  --查看数据库排序规则goCreate View dbo.V_NewIDas select RE = CONVERT(char(36),NEWID())goCreate Function dbo.FN_RandStr( @StrLen int)returns nvarchar(max)asBegin IF @StrLen < 0 return (null) Declare @re nvarchar(max),@len int Select @re = re,  @len = 36 From dbo.V_NewID While @len < @Strlen Begin  Select @re = @re +re,    @len = 36 + @len  From dbo.V_NewID End Set @re = Left(@re,@StrLen); ;With SN as  (  Select Top 11    RowID = Row_Number() Over(Order by Object_id) - 1  From Sys.objects ), CH as (  Select    ch = Case RowID when 10 then '-' else Convert(char(1),RowID) end,   Chv =(    Select Chv = char(ABS(CheckSum(re))%26+97)    From V_NewID   )  From SN ) Select @re = Replace(@re,ch,chv) From CH return(@re) EndgoSelect Top 100 RandValue = dbo.FN_RandStr(50)From sys.objects o1, sys.objects o2go 


 

原创粉丝点击