set @rndpwd=left(cast(rand()*9999+1000 as varchar(8)),4)
我这样写的不对,急死我了,请各位帮忙!

解决方案 »

  1.   

    有什么不对呀 是不是只有数字?
    --字母带数字
    declare @a varchar(4)
    set @a=right(replace(cast(newid() as varchar(36)),'-',''),4) 
    select @a
      

  2.   

    --楼主的正确啊!没有问题
    declare @rndpwd char(4)
    set @rndpwd=left(cast(rand()*9999+1000 as varchar(8)),4)
    print @rndpwd
    --如果取所有字符组成一个4位的字符串,可以用
    select char(100*rand())+char(100*rand())+char(100*rand())+char(100*rand())
    --或
    select left(newid(),4)