web-dev-qa-db-fra.com

insertion d'un caractère spécial dans une table

J'ai quelques caractères qui sont remplacés par un ?. Comment conservez-vous le caractère original dans le tableau? Le caractère que j'essaye d'insérer est un ɬ; Lettre minuscule latine L ceinture. Est-il possible d'ajouter ce caractère dans le tableau?

3
kevorski

Il est possible d'ajouter ce caractère tant que:

  1. la colonne de destination est NCHAR/NVARCHAR/XML (NTEXT fonctionne également, mais est obsolète depuis la sortie de SQL Server 2005, donc n'utilisez pas il),

    OR

  2. la colonne de destination est CHAR/VARCHAR et le classement de la colonne utilise une page de codes qui prend en charge le caractère ( s) en question.

Assurez-vous donc de procéder comme suit:

  1. Préfixez la chaîne avec N (non requis si le classement par défaut de la base de données actuelle utilise une page de codes qui prend en charge le caractère, mais aide en cela il supprime le classement par défaut de la base de données d'être un facteur qui pourrait provoquer ce problème - raison étant que si le classement par défaut de la base de données actuelle utilise une page de codes qui ne prend pas en charge le caractère, il sera converti soit en une correspondance "optimale", soit ? si aucune correspondance optimale ne peut être trouvée, alors qu'elle est conservée dans une variable ou une chaîne littérale).
  2. Dans le même ordre d'idées, s'il s'agit d'une procédure stockée ou d'un lot de requêtes paramétré via un paramètre et le paramètre est de type CHAR ou VARCHAR, alors le classement par défaut de la base de données actuelle n'utilise pas une page de codes qui prend en charge le caractère, alors passez à l'utilisation de NVARCHAR/NCHAR comme type de données de paramètre.
  3. Si la colonne de destination est VARCHAR/CHAR, assurez-vous que le classement de la colonne utilise une page de codes qui prend en charge ce caractère.
  4. Si la colonne de destination est VARCHAR/CHAR et que vous ne pouvez pas trouver un classement qui utilise une page de codes qui prend en charge le ou les caractères en question, vous devez convertir la colonne en NVARCHAR/NCHAR pour qu'il puisse stocker n'importe quel caractère. (C'est ce qui a fonctionné pour l'O.P.)

Pour plus d'informations sur l'utilisation de Collations, veuillez visiter: Collations.info

5
Solomon Rutzky