產生隨機密碼的sql儲存過程

dingonet發表於2008-05-07

專案中碰到要產生隨機密碼,而密碼有不可以重複,所以找了些資料,寫了這麼一個儲存過程。row是要生成幾個密碼。active是活動編號,FirstChar是指定的密碼首字母.裡面較好的利用了sql newid產生隨機數,又利用了不重複的索引來產生資料。想想在。net裡面要考慮到不重複產生密碼是多麼繁雜的事情啊。這樣一個過程就可以解決。還可以生成核對時的資料庫,不能說構思不巧妙。

[@more@]

SET QUOTED_IDENTIFIER ON
GO
SET ANSI_NULLS ON
GO

CREATE PROCEDURE gen_PrintPass
(
@row int output,
@active int,
@firstChar char(1)
)

AS

WHILE @row >0
BEGIN
SET ROWCOUNT @row
INSERT printPass SELECT
passCode = @firstChar+RIGHT(100000000+CONVERT(bigint,ABS(CHECKSUM(NEWID()))),9),active=@active
From syscolumns c1,syscolumns c2
SET @row = @row - @@ROWCOUNT
END


GO
SET QUOTED_IDENTIFIER OFF
GO
SET ANSI_NULLS ON
GO

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/77544/viewspace-1003528/,如需轉載,請註明出處,否則將追究法律責任。

相關文章