Bienvenue à Blogs CodeS-SourceS Identification | Inscription | Aide

SQL Server : A quoi sert le N devant une chaîne de caractère ?

Question courante, pourquoi Management Studio s'obstine à mettre un N devant les chaînes de caractère quand on lui demande de générer un script ?

Pour le comprendre, essayez le script suivant :

IF OBJECT_ID('Test_Collate', 'U') IS NOT NULL
    DROP TABLE Test_Collate
GO

CREATE
TABLE Test_Collate
(
    Id int,
    ch1 varchar(50) COLLATE Latin1_General_CI_AS, -- On s'attend à des caractères latins
    ch2 varchar(50) COLLATE Greek_CI_AS, -- Ici à du grec
    ch3 varchar(50) COLLATE Cyrillic_General_CI_AS -- Et ici du russe par exemple
)
GO

-- Sans le N
INSERT Test_Collate
VALUES(1, 'Français', 'ΔΖΗΘΛπςσφ', 'ЪЫЬЮЯав')
GO

-- Avec le N
INSERT Test_Collate
VALUES(2, N'Français', N'ΔΖΗΘΛπςσφ', N'ЪЫЬЮЯав')
GO

SELECT
* FROM Test_Collate
GO

Le résultat du dernier SELECT est ici :

1

Français

???T?p?sf

???????

2

Français

ΔΖΗΘΛπςσφ

ЪЫЬЮЯав

Que faut-il en conclure ? Et bien que le moteur de base de données traite la chaîne comme étant non Unicode sans le N, et comme étant Unicode avec le N.

On voit aussi un autre comportement intéressant du moteur. Ce dernier lorsque vous insérez des caractères dans une page de code données, il remplace tous les caractères inconnus de cette page de code par « ? ». Ce n'est pas à l'affichage, c'est bien le caractère « ? » qui est stockée dans le champ.

Bon Unicode…

Ce post vous a plu ? Ajoutez le dans vos favoris pour ne pas perdre de temps à le retrouver le jour où vous en aurez besoin :
Publié jeudi 20 décembre 2007 10:23 par christian
Classé sous : ,

Commentaires

Pas de commentaires
Les commentaires anonymes sont désactivés

Les 10 derniers blogs postés

- [Silverlight] En attendant Silverlight 2 RTW par Blog Technique d'Audrey PETIT le il y a 17 heures et 16 minutes

- Le nouveau Gojira, c’est pour lundi… par CoqBlog le 10-11-2008, 01:18

- SharePoint : nouvel article sur la mise en place des Scopes dans MOSS Searchs par Blog Technique de Romelard Fabrice le 10-10-2008, 17:52

- Hello CS par Le Blog de julz le 10-10-2008, 12:26

- MSDN/TechNet/Microsoft Days Tour 2008 à Lille les 13 et 14 Octobre ! par RedoBlog - The .NET Gentleman !!! le 10-10-2008, 09:35

- MVC Pratique #07 - Un projet concret et le transfert des objets avec les ModelBinders par #Rui le 10-09-2008, 23:39

- SQL Server 2008 : Certifié - TS Admin (70-432) par SQL Server vu par Christian Robert le 10-09-2008, 10:58

- [WPF] Comment changer la couleur utilisée pour sélectionner les éléments d’un ItemsControl ? par Thomas Lebrun le 10-09-2008, 10:49

- Hello World! par Hamid's Place le 10-08-2008, 23:38

- SQL Profiler - Configuration pour un développeur - tracer les requêtes SQL de votre application par Atteint de JavaScriptite Aiguë [Cyril Durand] le 10-08-2008, 15:52