@dieneri

Как генерировать автоматически хэш в поле для новых строк?

Нужно для новых записей генерировать хэш, например, на 20 символов. Понял, как делать с помощью типа данных UNIQUEIDENTIFIER и значений по-умолчанию NEWID(), но там генерируется GUID. А нужно код короче и без тире.
  • Вопрос задан
  • 95 просмотров
Решения вопроса 1
tsklab
@tsklab Куратор тега SQL Server
Здесь отвечаю на вопросы.
код короче и без тире
SELECT LEFT(REPLACE(CONVERT(varchar(255), NEWID()),'-',''),20)


Хочу как у YouTube.

Можно преобразовывать числовой счётчик в символы, например:
SELECT dbo.IntToAlpha( 1136572 )
cmrii
CREATE OR ALTER FUNCTION dbo.IntToAlpha ( @IN INT ) RETURNS VARCHAR(16)
WITH EXECUTE AS CALLER
AS
BEGIN
  DECLARE @ST VARCHAR(16) = ''
  WHILE @IN > 0 BEGIN
    SET @ST = CHAR((@IN % 26) + 97 ) + @ST
    SET @IN = @IN / 26
  END
  RETURN @ST
END
--
GO
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы