Fonction HashBytes SQL Server

Quelqu'un peut-il me dire pourquoi je reçois des réponses différentes pour ce qui suit:

Voici une fonction très simple utilisée pour returnner la valeur de hachage:

CREATE Function [fn_GetPin](@strText VARCHAR(254)) RETURNS VARCHAR(254) AS BEGIN SET @strText = HashBytes('MD5', @strText); RETURN @strText; END 

Voici mon SQL qui renvoie 2 valeurs différentes:

 SELECT HashBytes('MD5', '7690') as Hash1 , dbo.fn_GetPin('7690') AS Hash2 

Résultats:

 Hash1 Hash2 0xC6776F93BC9AFE2E511A1DBD5478362C Æwo“¼šþ.Q½Tx6, 

Pour une raison quelconque, la fonction ne returnne pas la même valeur que HASH1. Je ne suis pas sûr pourquoi.

Merci.

METTRE À JOUR:

Réponse acceptée est ci-dessous, je viens d'append (max) au VARBINARY pour returnner la valeur entière. Merci a tous.

 CREATE Function [fn_GetPin](@strText VARCHAR(254)) RETURNS VARBINARY(max) AS BEGIN Return HashBytes('MD5', @strText); END 

 CREATE Function [fn_GetPin](@strText VARCHAR(254)) RETURNS VARBINARY AS BEGIN Return HashBytes('MD5', @strText); END 

La fonction devrait renvoyer une valeur varbinary .

pvg à peu près cloué dessus.

 CREATE Function [fn_GetPin](@strText VARCHAR(254)) RETURNS VARBINARY AS BEGIN SET @strText = HashBytes('MD5', @strText); RETURN CAST(@strText as VARBINARY); END