sql >> Databasteknik >  >> RDS >> Sqlserver

Hashar mer än 8000 byte i SQL Server

Du kan skriva en SQL CLR-funktion:

[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));
}

Och då kan det kallas i SQL så här:

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

BigHashBytes är bara nödvändigt om längden skulle vara över 8k.



  1. Mysql samma frågar en med index sekund utan att få 10000xFetch tid?

  2. Enkelt gilla/ogilla betygssystem i php och MySQL

  3. SQL QUERY flera sökningar på en rad för att hitta data från en annan rad i samma tabell

  4. SELECT LAST_INSERT_ID() fungerar i Direct MySQL Query men inte intermittent PHP QUERY