Sqlserver
 sql >> Baza danych >  >> RDS >> Sqlserver

Haszowanie ponad 8000 bajtów w SQL Server

Możesz napisać funkcję 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));
}

A potem można to wywołać w SQL tak:

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

BigHashBytes jest konieczne tylko wtedy, gdy długość przekracza 8 tys.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Tworzenie sparametryzowanego VIEW w SQL Server 2008

  2. SQL Dodaj klucz obcy do istniejącej kolumny

  3. Alias ​​SQL podaje nieprawidłową nazwę kolumny

  4. Zapytania między bazami danych, łączy zalety i wady

  5. Utwórz wyzwalacz w SQL Server