我正在研究一個允許我爲員工生成隨機ID號碼(6整數)的應用程序,但我想知道如何使用C#生成這些隨機數字,而不是重複已被其他員工使用的號碼在SQL數據庫中。下面是SQL做代碼:如何使用未在數據庫中列出的C#生成隨機數?
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)
`
爲什麼不把它作爲主鍵讓sql自動處理 – Steve
當你有一個多用戶數據庫你需要創建一個SQL內置函數來保證唯一的主鍵。 – jdweng
你最好把它保持在sql級別。將它移動到C#代碼將需要對每個生成的數字執行sql的往返測試,以測試它是否已存在於數據庫中。 –