Sql Server 生成随机字符串
![](/Images/OutliningIndicators/ExpandedBlockStart.gif)
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, @RandomNumberInt, 1);
SET @counter = @counter + 1;
SET @RandomID = @RandomID + @CurrentCharacter;
END
SELECT @RandomID AS 'Password';
Go
使用:
exec sp_GeneratePassword 8; //输出 CmPZguRC