24.02.2009 19:44 - Autor: Roman Matěna
MSSQL MD5, rozdíly mezi MSSQL a MySQL
Článek ze série rozdílů mezi MySQL a MSSQL. Jak na hashovací funkce? Funkce MD5() na MSSQL nenajdete, alespoň ne jak jste zvyklí.
Úvodním článkem MSSQL UPSERT, INSERT INTO ... ON DUPLICATE KEY UPDATE jsem zahájil sérii článků o rozdílech mezi MySQL a MSSQL, které jsou pro mne jako zelenáče v MSSQL nové.
Dnes jsou na řadě hashovací funkce, pokud jste zvyklí na SELECT MD5('text'); tak v MSSQL nic takového nenajdete.
Zkusit to můžete pomocí funkce HashBytes, např. takhle:
- SELECT HashBytes('MD5',"testovací řetězec"); // výsledek je však v binární podobě a budeme ho muset převést na hex
- md5mssql:Ř<ţ6gţ‰¬˛ ]qJ
- bin2hex:d81b0f3cfe36675cfe89acb2205d714a
- md5mysql:d81b0f3cfe36675cfe89acb2205d714a
komentáře
RSS Komentáře



Já řeším MD5 výstup s MSSQL takto: RIGHT(master.dbo.fn_varbintohexstr (HashBytes(‚MD5‘,‚testovací řetězec‘)) ,32)
nebo pro zjednodušení práce přímo funkci
CREATE FUNCTION [dbo].[MD5] ( @zdroj varchar(1024) ) RETURNS char(32) AS BEGIN
RETURN RIGHT(master.dbo.fn_varbintohexstr (HashBytes(‚MD5‘,@zdroj)) ,32) END