Sqlserver
 sql >> база данни >  >> RDS >> Sqlserver

Хеширане на повече от 8000 байта в SQL Server

Можете да напишете SQL CLR функция:

[Microsoft.SqlServer.Server.SqlFunction]
public static SqlBinary BigHashBytes(SqlString algorithm, SqlString data)
{
    var algo = HashAlgorithm.Create(algorithm.Value);

    var bytes = Encoding.UTF8.GetBytes(data.Value);

    return new SqlBinary(algo.ComputeHash(bytes));
}

И тогава може да се извика в SQL така:

--these return the same value
select HASHBYTES('md5', 'test stuff')
select dbo.BigHashBytes('md5', 'test stuff')

BigHashBytes е необходимо само ако дължината е над 8k.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Тип данни за съхраняване на IP адрес в SQL Server

  2. Защо CTE е по-добър от курсор/извлечена таблица/подзаявки/временна таблица и т.н.?

  3. Възникна грешка на ниво транспорт при получаване на резултати от сървъра

  4. Как да получите стойност на квадратчето за отметка от gridview, когато квадратчето за отметка OnCheckedChanged

  5. T-SQL дата и час, закръглен до най-близката минута и най-близките часове с използване на функции