Oke, jadi penggalian lebih lanjut menunjukkan ini hampir pasti karena karakter yang lebih baru, karena ini juga berfungsi dengan sql server 2008 yang setara dengan susunan latin, tetapi bukan versi yang lebih lama, yaitu bekerja dengan Latin1_General_100_CI_AS
, tetapi tidak dengan Latin1_General_CI_AS
. Untuk mendapatkan daftar lengkap susunan yang membandingkan string ini dengan benar, saya menggunakan:
IF OBJECT_ID('Tempdb..#T') IS NOT NULL
DROP TABLE #T;
IF OBJECT_ID('Tempdb..#V') IS NOT NULL
DROP TABLE #V;
CREATE TABLE #V (A NVARCHAR(50), B NVARCHAR(50));
INSERT #V (A, B) VALUES (N'it᧠', N'it');
CREATE TABLE #T (Collation VARCHAR(500), Match BIT);
DECLARE @SQL NVARCHAR(MAX) = (SELECT N'INSERT #T (Collation, Match)
SELECT ''' + Name + ''', CASE WHEN A = B COLLATE ' + name + ' THEN 1 ELSE 0 END
FROM #V;'
FROM sys.fn_helpcollations()
FOR XML PATH(''), TYPE
).value('.', 'NVARCHAR(MAX)');
EXECUTE sp_executesql @SQL;
SELECT *
FROM #T
WHERE Match = 0;