Я создал такую функцию:
CREATE FUNCTION dbo.HashCheeseName (@CheeseName NVARCHAR(40))
RETURNS VARCHAR(40)
AS BEGIN
DECLARE @Salt VARCHAR(25)
DECLARE @CheeseName NVARCHAR(40)
DECLARE @output VARCHAR(40)
SET @Salt = '123abc11aa'
SET @output = HASHBYTES('SHA2_256', CAST(@CheeseName as VARCHAR(40)) + @Salt)
RETURN @output
END
;
Когда я просто бегу
SELECT HASHBYTES('SHA2_256', CAST('SwissCheese' as VARCHAR(40)) + @Salt)
Я получаю ожидаемый результат, как 0xF456D41144584064AC5456B7E3
...
Однако, когда я запускаю функцию в запросе
SELECT dbo.HashCheeseName('SwissCheese')
Я получаю такой результат: h:Mó!yýŠù’p» ªu_aøP¾æhw
Любые идеи о том, почему это приведет к чему-то вроде этого? На первый взгляд это похоже на проблему конверсии, но я не вижу проблемы