我正在开发一个应用程序,该应用程序允许我为员工生成随机ID号(6个整数),但我想知道如何使用C#生成这些随机数,并且不会重复SQL数据库中其他员工已经使用的号码。下面是用SQL编写的代码:
declare @unique_UID varchar(6)
select @unique_UID = Right(ABS(CAST(CAST(NEWID() AS VARBINARY) AS INT)), 6)
while exists (select 1 from dbo.tblUserID
where @unique_UID = UserID_UID
and len(@unique_uid) = 6
and @unique_UID <> @parm_User_Pin)(
select @unique_UID = Right(ABS(CAST(CAST(NEWID() AS VARBINARY) AS INT)), 6)`
发布于 2016-07-28 21:41:40
6个整数等于999999个数字。只需将所有可用的数据写在一个表中。然后随机选择一个并删除它:
WITH cte AS (
SELECT TOP (1) number
FROM available
ORDER BY NEWID()
)
DELETE FROM cte
OUTPUT DELETED.number;这比尝试生成随机和检查可用性更可靠。如果您的组织已经有999998名员工,尝试随机生成仍可用的员工将需要很长时间……
https://stackoverflow.com/questions/38637905
复制相似问题