--自定义函数:取得指定上下限的随机数if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[f_rand]') and xtype in (N'FN', N'IF', N'TF')) drop function [dbo].[f_rand] GO if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[v_rand]') and OBJECTPROPERTY(id, N'IsView') = 1) drop view [dbo].[v_rand] GO--需要这样一个视图 create view v_rand as select re=rand(),re2=replace(cast(newid() as varchar(36)),'-','') go--自定义函数:取得指定上下限长度的随字符串create function f_rand( @最小 int, --最小长度(范围1-32) @最大 int --最大长度(范围1-32) )returns varchar(32) as begin declare @r varchar(32) select @r=left(re2,re*(@最大-@最小)+@最小) from v_rand return(@r) end go--调用示例 select dbo.f_rand(2,10),dbo.f_rand(2,10)
--调用上面的函数生成一百条记录 select top 100 dbo.f_rand(2,10),dbo.f_rand(2,10) from sysobjects
select left(newid(),8)
drop function [dbo].[f_rand]
GO
if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[v_rand]') and OBJECTPROPERTY(id, N'IsView') = 1)
drop view [dbo].[v_rand]
GO--需要这样一个视图
create view v_rand as select re=rand(),re2=replace(cast(newid() as varchar(36)),'-','')
go--自定义函数:取得指定上下限长度的随字符串create function f_rand(
@最小 int, --最小长度(范围1-32)
@最大 int --最大长度(范围1-32)
)returns varchar(32)
as
begin
declare @r varchar(32)
select @r=left(re2,re*(@最大-@最小)+@最小) from v_rand
return(@r)
end
go--调用示例
select dbo.f_rand(2,10),dbo.f_rand(2,10)
select top 100 dbo.f_rand(2,10),dbo.f_rand(2,10) from sysobjects