Sql Server 生成随机字符串

Code
alter PROCEDURE sp_GeneratePassword
    
@Length int
AS

DECLARE @RandomID varchar(32);
DECLARE @counter smallint;
DECLARE @RandomNumber float;
DECLARE @RandomNumberInt tinyint;
DECLARE @CurrentCharacter varchar(1);
DECLARE @ValidCharacters varchar(255);
SET @ValidCharacters = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789';
DECLARE @ValidCharactersLength int;
SET @ValidCharactersLength = len(@ValidCharacters);
SET @CurrentCharacter = '';
SET @RandomNumber = 0;
SET @RandomNumberInt = 0;
SET @RandomID = '';

SET NOCOUNT ON;

SET @counter = 1;

WHILE @counter < (@Length + 1)
BEGIN

        
SET @RandomNumber = Rand();
        
SET @RandomNumberInt = Convert(tinyint, ((@ValidCharactersLength - 1* @RandomNumber + 1));

        
SELECT @CurrentCharacter = SUBSTRING(@ValidCharacters@RandomNumberInt1);

        
SET @counter = @counter + 1;

        
SET @RandomID = @RandomID + @CurrentCharacter;

END
SELECT @RandomID AS 'Password';
Go

 

使用:

exec sp_GeneratePassword 8; //输出 CmPZguRC

 

 

posted @ 2009-06-04 19:39  无尽思绪  阅读(1747)  评论(4编辑  收藏  举报