DECLARE @RANDID INT SET @RANDID = 0 WHILE LEN(@RANDID)<>6 BEGIN SET @RANDID = CONVERT ( INT, SUBSTRING( CONVERT( CHAR(20) , RAND()) , 3, 6 ) ) END PRINT @RANDID
--还不知道弄,那我也帮不了你啦 DECLARE @RANDID INT,@count int SET @RANDID = 0 SET @count = 0 WHILE LEN(@RANDID)<>6 BEGIN --检查表中是否存在 SET @RANDID = CONVERT ( INT, SUBSTRING( CONVERT( CHAR(20) , RAND()) , 3, 6 ) ) select @count = count(*) from a where id = @RANDID if (@count > 0) --存在这继续循环,直到@count = 0,则插入 SET @RANDID =SUBSTRING( CONVERT(CHAR(20),@RANDID),1,5) END PRINT @RANDID --insert into a(id) values (@RANDID) --PRINT @count --print SUBSTRING(CONVERT(CHAR(20),@RANDID),1,5)
DECLARE @RANDID INT
SET @RANDID = 0
WHILE LEN(@RANDID)<>6
BEGIN
SET @RANDID = CONVERT ( INT, SUBSTRING( CONVERT( CHAR(20) , RAND()) , 3, 6 ) )
END
PRINT @RANDID
Select ABS(CHECKSUM(NEWID())+100000) % (999999)
要保证绝对不重复的话,可能要加约束或者触发器了。用这个相对比较随机。
--还不知道弄,那我也帮不了你啦
DECLARE @RANDID INT,@count int
SET @RANDID = 0
SET @count = 0
WHILE LEN(@RANDID)<>6
BEGIN
--检查表中是否存在
SET @RANDID = CONVERT ( INT, SUBSTRING( CONVERT( CHAR(20) , RAND()) , 3, 6 ) )
select @count = count(*) from a where id = @RANDID
if (@count > 0) --存在这继续循环,直到@count = 0,则插入
SET @RANDID =SUBSTRING( CONVERT(CHAR(20),@RANDID),1,5)
END
PRINT @RANDID
--insert into a(id) values (@RANDID)
--PRINT @count
--print SUBSTRING(CONVERT(CHAR(20),@RANDID),1,5)
Select ABS(CHECKSUM(NEWID()))% 99999 +100000
select abs(checksum(newid()))%1000000
Select ABS(CHECKSUM(NEWID()))% 99999 + left(left(convert(varchar(20),REVERSE(RANd())),1)+ 1,1) * 100000