USE tempdb
GO
CREATE TABLE RandomNumber(Id 10),IsUsed bit not null)
CREATE UNIQUE INDEX IX_RandomNumber ON RandomNumber(Id)
WITH IGNORE_DUP_KEY
GO
@dt datetime
SET @dt = GETDATE()
SET NOCOUNT ON
@row int
SET @row = 1000000
WHILE @row > 0
BEGIN
RAISERROR( 'need %d rows ', 10, 1, @row) WITH NOWAIT
SET ROWCOUNT @row
INSERT RandomNumber SELECT
Id = RIGHT(10000000000 + CONVERT(bigint, ABS(CHECKSUM(NEWID()))), 10)
,IsUsed=0
FROM syscolumns c1, sysobjects o--, syscolumns c2
SET @row = @row - @@ROWCOUNT
END
SELECT BeginDate = @dt, EndDate = GETDATE(), Second = DATEDIFF(Second, @dt, GETDATE())
GO
SELECT COUNT() FROM RandomNumber
GO
--drop table RandomNumber
未经允许不得转载! 作者:棋牌源码网,转载或复制请以超链接形式并注明出处棋牌源码网。
原文地址:《sqlserver 生成100万个不重复的10位随机数存入数据库》发布于:2021-08-06