J'ai vu le préfixe N dans certaines requêtes T-SQL d'insertion. Beaucoup de gens l'ont utilisé N
avant d'insérer la valeur dans un tableau.
J'ai cherché, mais je n'ai pas pu comprendre quel est le but d'inclure le N
avant d'insérer des chaînes dans le tableau.
INSERT INTO Personnel.Employees
VALUES(N'29730', N'Philippe', N'Horsford', 20.05, 1),
À quoi sert ce préfixe «N» et quand doit-il être utilisé?
la source
N
que lorsque j'utilise les types de données suivantsCHAR, VARCHAR or TEXT
?? parce que `NCHAR, NVARCHAR ou NTEXT` sont intrinsèquement unicode UNICODE je n'ai pas besoin de l'ajouter séparément .... est-ce vrai?databases aspfaq com
redirige vers des sites Web extrêmement douteux (fkref com
,za1 zeroredirect1 com
,i0z13 trackvoluum com
), qui ont été marquées par notre pare - feu d' entreprise comme la pornographie, les sites malveillants et les URL de spam. J'ai contacté le propriétaire d'aspfaq.com et modifié la réponse pour supprimer le lien.Permettez-moi de vous dire une chose ennuyeuse qui s'est produite avec le
N'
préfixe - je n'ai pas pu le réparer pendant deux jours.Mon classement de base de données est SQL_Latin1_General_CP1_CI_AS .
Il a une table avec une colonne appelée MyCol1 . C'est un Nvarchar
Cette requête ne correspond pas à la valeur exacte qui existe.
l'utilisation du préfixe N '' le corrige
Pourquoi? Parce que latin1_general n'a pas de gros points İ c'est pourquoi il échoue, je suppose.
la source
1. Performance:
Supposons que votre clause where est comme ceci:
Si la colonne NAME est de tout type autre que nvarchar ou nchar, vous ne devez pas spécifier le préfixe N. Cependant, si la colonne NAME est de type nvarchar ou nchar, alors si vous ne spécifiez pas le préfixe N, «JON» est traité comme non unicode. Cela signifie que le type de données de la colonne NAME et de la chaîne «JON» sont différents et que SQL Server convertit implicitement le type d'un opérande en l'autre. Si SQL Server convertit le type du littéral en type de colonne, il n'y a pas de problème, mais s'il fait l'inverse, les performances seront affectées car l'index de la colonne (si disponible) ne sera pas utilisé.
2. Jeu de caractères:
Si la colonne est de type nvarchar ou nchar, utilisez toujours le préfixe N tout en spécifiant la chaîne de caractères dans la clause WHERE criteria / UPDATE / INSERT. Si vous ne le faites pas et que l'un des caractères de votre chaîne est unicode (comme les caractères internationaux - exemple - à), il échouera ou subira une corruption des données.
la source
En supposant que la valeur est de type nvarchar, nous utilisons uniquement N ''
la source