Ok, então um pouco mais de escavação mostra que isso é quase certamente devido ao caractere mais recente, já que isso também funciona com os equivalentes do sql server 2008 de agrupamento latino, mas não com as versões mais antigas, ou seja, funciona com
Latin1_General_100_CI_AS
, mas não com Latin1_General_CI_AS
. Para obter uma lista completa dos agrupamentos que comparam corretamente essas strings, usei: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;