USE [ARSystem] GO /****** Object: UserDefinedFunction [dbo].[ISS_GeneratePassword] Script Date: 10/11/2012 13:17:51 ******/ SET ANSI_NULLS ON GO SET QUOTED_IDENTIFIER ON GO ALTER FUNCTION [dbo].[ISS_GeneratePassword]( @template nvarchar(30) ) returns nvarchar(30) AS BEGIN if len(isnull(@template,'')) = 0 set @template = 'cAd0#P*f' declare @i int ,@c char(1) ,@password nvarchar(30) ,@special nvarchar(50) --set nocount on select @i = 0 ,@password = '' ,@special = '!"#$%&()*+,-./:;<=>?@{|}~' set @i = 1 while @i <= len(@template) begin set @c = case --upper alpha [A-Z] when ascii(substring(@template, @i, 1)) between 65 and 90 then char(65 + convert(int,floor((SELECT RandNumber FROM vRandNumber)*26))) --lower alpha [a-z] when ascii(substring(@template, @i, 1)) between 97 and 122 then char(97 + convert(int,floor((SELECT RandNumber FROM vRandNumber)*26))) --number [0-9] when ascii(substring(@template, @i, 1)) between 48 and 57 then convert(char(1), convert(int,floor((SELECT RandNumber FROM vRandNumber) * 10))) --special (printable) character else substring(@special, convert(int,floor((SELECT RandNumber FROM vRandNumber)*len(@special)+1)), 1) end select @i = @i+1 ,@password = @password + @c END return @password END
четверг, 11 октября 2012 г.
Easy generate any random string with pattern MS SQL
select dbo.ISS_GeneratePassword('cAd0#P*f')
Подписаться на:
Комментарии к сообщению (Atom)
Комментариев нет:
Отправить комментарий