2009-12-01 6 views
4

Comment le classement influe-t-il sur SQL Server en termes de stockage et comment cela affecte-t-il les types de données Unicode et non-unicode?Sélection du bon classement SQL Server pour le stockage

  • Le classement affecte-t-il le stockage Unicode? ou simplement régir les règles de tri dans la base de données?

  • Lorsque j'utilise les types de données non Unicode, quelles sont les restaurations liées au classement?

  • Si des restrictions s'appliquent, qu'arrive-t-il lorsque j'essaie de stocker un caractère qui ne figure pas dans le classement d'une base de données d'un type de données non Unicode?

Ma compréhension est que le type de données Unicode peut toujours stocker l'ensemble des données Unicode tandis que les stockage de types de données non-unicode capabilties dépendent de la page de code (qui est défini par le classement) et ne peut représenter un certain nombre de caractères communs dans cette collation.

Il est évident que chaque caractère dans un type de données Unicode aurait au moins occupent 2 octets alors que les types de données non-unicode occupent 1 octet par caractère (ou elle différente avec la collation ainsi?)

me détromper ici, comment cela fonctionne-t-il exactement?

Répondre

6

SQL Server stocke les données Unicode (NTEXT, NVARCHAR) dans UCS2, ce qui génère toujours 2 octets par caractère.

Un classement affecte uniquement le tri (et le boîtier).

Dans les types de données non-Unicode (TEXT, VARCHAR), un seul octet est utilisé par caractère et seuls les caractères de la page de codes de l'assemblage peuvent être stockés (comme indiqué). Voir ce MSDN article on collations

Questions connexes