奇怪爲什麼SQL Server校驗和函數爲這兩個不同的輸入值返回相同的值?Checksum返回不同集合的相同值
SELECT CHECKSUM(2792,2847), 2792+2847 » **42399**,5639
SELECT CHECKSUM(2716,3167), 2716+3167 » **42399**,5883
奇怪爲什麼SQL Server校驗和函數爲這兩個不同的輸入值返回相同的值?Checksum返回不同集合的相同值
SELECT CHECKSUM(2792,2847), 2792+2847 » **42399**,5639
SELECT CHECKSUM(2716,3167), 2716+3167 » **42399**,5883
從看文檔CHECKSUM (Transact-SQL)文檔則表明有重複的可能性,並使用HASHBYTES (Transact-SQL)代替
我有這個問題。小數和CheckSum()似乎有問題。 通過將我的校驗和()中使用的所有列解析爲varchar
例如, 代替:select checksum(columnA) from dbo.Table
使用:select checksum(cast(columnA as varchar)) from dbo.Table
SELECT CHECKSUM(CAST(2792 AS VARCHAR), CAST(2847 AS VARCHAR)), 2792+2847
>> -1228994846,5639
SELECT CHECKSUM(CAST(2716 AS VARCHAR), CAST(3167 AS VARCHAR)), 2716+3167
>> 1320541154,5883