Я перемещаю свои данные с SQL Server на MySQL.Данные перемещаются без каких-либо проблем, но я пытаюсь найти способ проверить целостность данных между SQL Server и MySQL.У меня проблемы с типами данных VARCHAR и NVARCHAR .Поскольку они варьируются от 255 до MAX .Я пытаюсь сравнить хеш-коды между этими типами данных, но они не совпадают.
Для целей тестирования я попытался это сделать:
mysql> SET @test := repeat('t',50000);
Query OK, 0 rows affected (0.00 sec)
mysql> select md5(@test);
+----------------------------------+
| md5(@test) |
+----------------------------------+
| a9cf60d59fe2fb94a84bc106eca028be |
+----------------------------------+
1 row in set (0.01 sec)
Попытка того же в SQL Server дает что-то другое:
DECLARE @Test NVARCHAR(MAX) = REPLICATE(CONVERT(NVARCHAR(MAX), N't'), 50000);
SELECT HashBytes('MD5', CONVERT(varchar, @Test));
0x3C48C287BC783516AC89297848A104FE
select LOWER(CONVERT(VARCHAR(32), HashBytes('MD5', CONVERT(varchar, @Test)), 2));
3c48c287bc783516ac89297848a104fe
SELECT CONVERT(VARCHAR(32),HashBytes('MD5', @Test),2);
40752EB301B41EEAEB309348CE9711D6
Как видите, ни один из выводов в SQL Server не совпадает с MySQL.Следовательно, ищите здесь некоторые указания относительно того, как я могу сделать это сравнение данных.