Les chaînes de caractères UNICODE en SQL Server
Channel: Rudi Bruchez
Date: 2018-11-08

Dans cette vidéo, nous abordons le support de l'UNICODE dans SQL Server.
Le VARCHAR est un type de donnée qui va stocke les chaînes de caractères en ANSI, sur 1 octet. Cela ne permet pas de stocker correctement les systèmes d’écriture non latins, comme le chinois, qui demandent plus de possibilités. On doit le stocker en UNICODE. L'UNICODE permet 2 octets et donc 64 000 possibilités. L'UNICODE a plusieurs types de codage, notamment UTF8 et UTF16. En UTF16, on stocke toujours sur 2 octets. SQL Server gère de l’UTF16, avec son type NVARCHAR, N signifie UNICODE.

On peut vérifier qu’un caractère est stocké sur 2 octets en NVARCHAR à l’aide de la fonction DATALENGTH.

Une réflexion plus générale sur l'UNICODE : comme on est en UTF16, évitez de mettre des colonnes en UNICODE si vous n'en avez pas besoin, parce que vous allez perdre beaucoup d'espace et donc vous allez diminuer les performances de la base de données. Vous pouvez très bien utiliser du VARCHAR, c'est-à-dire de l'ANSI, pour tout ce qui est alphabet latin, même avec des caractères spéciaux, comme le å des langues scandinaves, ou le ~ de l'espagnol.

Actuces et tutoriels SQL Server en français, pour SQL Server 2017, SQL Server 2016, et toutes versions. 
Par Rudi Bruchez
https://www.linkedin.com/in/rudibruchez/
www.babaluga.com