En arabe, nous avons des caractères comme ا (alef) et أ (alef avec hamza).
Les utilisateurs les écrivent de manière interchangeable et nous voulons les rechercher de manière interchangeable. SQL Server les traite comme des caractères distincts. Comment puis-je faire en sorte que SQL les traite comme le même caractère?
J'ai pensé remplacer n'importe quel أ (alef avec hamza) par ا (alef) à l'insertion mais nous avons beaucoup d'alternatives en langue arabe non seulement ا (alef) et أ (alef avec hamza).
J'ai essayé Arabic_CI_AS
et Arabic_CI_AI
cela ne résout pas le problème.
Voici un script pour régénérer le problème:
CREATE TABLE [dbo].[TestTable] (
[ArabicChars] [nvarchar](50) NOT NULL,
CONSTRAINT [PK_TestTable] PRIMARY KEY CLUSTERED
(
[ArabicChars] ASC
)
) ON [PRIMARY];
INSERT INTO TestTable values (N'احمد');
INSERT INTO TestTable values (N'أحمد');
SELECT *
FROM TestTable
WHERE ArabicChars like N'ا%';
Le résultat est:
ArabicChars
احمد
(1 row(s) affected)
Le résultat souhaité serait les deux lignes que nous avons insérées.
ا and أ