--生成随机编号的函数 CREATE FUNCTION f_RANDBH(@BHLen int) RETURNS varchar(50) AS BEGIN DECLARE @r varchar(50) IF NOT(ISNULL(@BHLen,0) BETWEEN 1 AND 50) SET @BHLen=10lb_bh: --生成随机编号的处理 SELECT @r=re FROM (SELECT re=STUFF(RAND(),1,2,'')) a WHILE LEN(@r)<@BHLen SELECT @r=@r+re FROM v_RAND SET @r=LEFT(@r,@BHLen) --检查编号在基础数据表中是否存在 IF EXISTS(SELECT * FROM tttt WITH(XLOCK,PAGLOCK) WHERE passp=@r) GOTO lb_bh RETURN(@r) END GOupdate tttt set passp=dbo.f_randbh(6)
如果密码是纯数字组成:update 表 set 密码字段=substring(convert(varchar,rand(checksum(newid()))),3,6)
使用left(newid(),6)是有可能产生重复数据的。
vivianfdlpw() ( ) 信誉:100 你这个有4位和5位的呀
update 表 set 密码字段=replace(substring(convert(char(10),rand(checksum(newid()))),3,6),' ','0')
CREATE FUNCTION f_RANDBH(@BHLen int)
RETURNS varchar(50)
AS
BEGIN
DECLARE @r varchar(50)
IF NOT(ISNULL(@BHLen,0) BETWEEN 1 AND 50)
SET @BHLen=10lb_bh: --生成随机编号的处理
SELECT @r=re FROM (SELECT re=STUFF(RAND(),1,2,'')) a
WHILE LEN(@r)<@BHLen
SELECT @r=@r+re FROM v_RAND
SET @r=LEFT(@r,@BHLen) --检查编号在基础数据表中是否存在
IF EXISTS(SELECT * FROM tttt WITH(XLOCK,PAGLOCK) WHERE passp=@r)
GOTO lb_bh RETURN(@r)
END
GOupdate tttt set passp=dbo.f_randbh(6)
你这个有4位和5位的呀