Расчет хеша с использованием оператора обновления T-SQL для генерации 32-битной длины - PullRequest
0 голосов
/ 05 апреля 2019

Как я могу изменить этот код, чтобы он работал в SQL Server?Сейчас это не работает в SQL Server.

Оператор работает для вычисления контрольной суммы в Oracle.Как я могу адаптировать его для SQL Server?

    UPDATE Work 
  set ETL_CHECKSUM =  HASHBYTES('MD5',concat(
    Branch, '|',
    Group, '|', 
    Number, '|', 
    Column, '|',
    dDate, '|', 
   Basis, '|',
    per, '|',
     Mult, '|', 
     nDate, '|', 
     Key, '|', 
    INSERT_TS))  

Ответы [ 2 ]

0 голосов
/ 05 апреля 2019

SQL Server представил функцию HASHBYTES .Это работает с данными varchar, nvarchar и varbinary.

DECLARE @HashThis nvarchar(4000);  
SET @HashThis = CONVERT(nvarchar(4000),'dslfdkjLK85kldhnv$n000#knf');  
SELECT HASHBYTES('MD5', @HashThis);

См. Другие алгоритмы хеширования, доступные по ссылке.

0 голосов
/ 05 апреля 2019

SQL Server имеет функцию с именем ХАШБИТЫ для этого:

DECLARE @hashThis nvarchar(max);
SET @hashThis = CONCAT(Branch, Discou, ...);  
SELECT HASHBYTES('MD5', @hashThis);  

Посмотрите на: https://docs.microsoft.com/en-us/sql/t-sql/functions/hashbytes-transact-sql?view=sql-server-2017

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...