Maison > base de données > tutoriel mysql > Quelles sont les limites réelles de NVARCHAR et VARCHAR dans SQL, et comment puis-je éviter la troncature par concaténation ?

Quelles sont les limites réelles de NVARCHAR et VARCHAR dans SQL, et comment puis-je éviter la troncature par concaténation ?

Linda Hamilton
Libérer: 2025-01-17 01:22:12
original
501 Les gens l'ont consulté

What are the Real Limits of NVARCHAR and VARCHAR in SQL, and How Can I Avoid Concatenation Truncation?

Limites pratiques de NVARCHAR et VARCHAR en SQL et comment éviter la troncature de connexion

Comprendre NVARCHAR

Contrairement à ce que vous pourriez penser, NVARCHAR(MAX) n'a pas de limite de 4 000 caractères. Il peut stocker jusqu’à (et dans certains cas plus de) 2 Go de données. Si le type de données (nvarchar(n)) est spécifié, jusqu'à 4 000 caractères sont autorisés, mais max permet de stocker des objets volumineux sans spécifier de longueur spécifique.

Incompréhension de la limite de 4 000 caractères

La limite de 4 000 caractères que vous rencontrez peut résulter d'une concaténation de chaînes dont le comportement dépend des types de données concernés :

  • varchar(n) varchar(n) : tronqué à 8 000 caractères
  • nvarchar(n) nvarchar(n) : tronquer à 4 000 caractères
  • [n]varchar(max) [n]varchar(max) : Pas de troncature
  • varchar(n) nvarchar(n) : tronqué à 4 000 caractères (le résultat est nvarchar(4 000))

Dans votre cas, l'erreur peut se produire lorsque vous essayez de concaténer une chaîne varchar(4001-8000) à une chaîne de type nvarchar, entraînant une troncature.

Résoudre le problème

Pour éviter la troncature des connexions :

  • Assurez-vous que tous les littéraux de chaîne utilisent le préfixe N, en particulier les chaînes comprises entre 4 001 et 8 000 caractères.
  • Concaténez les chaînes dans les variables NVARCHAR(MAX) pour éviter les problèmes de troncature NVARCHAR(4,000).

Afficher la longue chaîne SQL

Pour afficher les longues chaînes SQL dans SSMS sans restrictions :

  • Passer en mode « Résultats vers la grille »
  • Utiliser la requête XML PATH :
<code class="language-sql">select @SQL as [processing-instruction(x)] FOR XML PATH</code>
Copier après la connexion

Vous pouvez éviter les problèmes de formatage en insérant la chaîne SQL dans les instructions de traitement.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal