Не зная, что такое col1 в вашем примере кода, это может не дать ответа на ваш вопрос, однако первый аргумент HASHBYTES
должен быть algorithm
.
С MSDN синтаксис:
HashBytes ('<algorithm>', { @input | 'input' } )<algorithm>::= MD2 | MD4 | MD5 | SHA | SHA1
Редактировать В статье MSDN также объясняется, что входной параметр является либо строкой, либо ссылкой на переменную типа varchar, nvarchar или varbinary, это один вход. Вы передаете несколько входных параметров. Однако я удивлен, что вы получаете нулевое значение, а не ошибку, которую я получаю, когда пытаюсь запустить функцию The hashbytes function requires 2 argument(s).
. Наиболее вероятной причиной получения результата NULL является то, что ваше входное значение равно нулю, то есть ваш столбец, который вы конвертируете в varchar, равен нулю. Если вы запустите select hashbytes('md5', convert(varchar(max), null))
, вы получите NULL
результат.