CREATE FUNCTION dbo.Decode (@encodedId NVARCHAR(50)) RETURNS INT AS BEGIN DECLARE @alphabet nvarchar(36) = 'abcdefghijklmnopqrstuvwxyz0123456789', @base INT, @decodedId INT = 0, @len INT, @pos INT = 1, @letter NVARCHAR(10) SET @len = LEN(@encodedId) SET @base = LEN(@alphabet) WHILE(@pos <= @len) BEGIN SET @letter = SUBSTRING(@encodedId, @pos, 1) SET @decodedId = (@decodedId * @base) + CHARINDEX(@letter, @alphabet) SET @pos += 1 END RETURN @decodedId END GO CREATE FUNCTION dbo.Encode (@id INT) RETURNS NVARCHAR(50) AS BEGIN DECLARE @alphabet nvarchar(36) = 'abcdefghijklmnopqrstuvwxyz0123456789', @base int, @pos int, @result nvarchar(50) = '', @encodedId nvarchar(50) = '' SET @base = LEN(@alphabet) IF(@id = 0) BEGIN SET @result = SUBSTRING(@alphabet, 1, 1) END ELSE BEGIN WHILE(@id > 0) BEGIN SET @pos = @id % @base SET @encodedId += SUBSTRING(@alphabet, @pos, 1) SET @id = @id / @base END SET @result = REVERSE(@encodedId) END RETURN @result END GO