Maison > base de données > tutoriel mysql > Pourquoi Nvarchar(Max) dans T-SQL tronque-t-il à 4 000 caractères ?

Pourquoi Nvarchar(Max) dans T-SQL tronque-t-il à 4 000 caractères ?

Mary-Kate Olsen
Libérer: 2024-12-31 18:12:10
original
923 Les gens l'ont consulté

Why Does Nvarchar(Max) in T-SQL Truncate to 4000 Characters?

Troncation dans Nvarchar (Max) à 4000 caractères dans TSQL

Ce problème survient lors de la tentative de stockage de gros morceaux de texte dans une variable déclarée comme Nvarchar(Max) dans TSQL. Étonnamment, la variable n'accepte que 4 000 caractères au lieu des 8 000 attendus.

L'explication réside dans la nature de l'attribution des types de données dans TSQL. Déclarer une variable comme Nvarchar(Max) ne confère pas automatiquement l'attribut Max. Au lieu de cela, la variable se comporte initialement comme une collection de constantes de chaîne plus petites (moins de 4 000 caractères). Lorsque ces constantes sont concaténées ensemble, la variable @SQL1 résultante a toujours une limite de caractères de 4 000.

Pour résoudre ce problème, assurez-vous que le côté droit de l'instruction d'affectation pour @SQL1 est déjà un Nvarchar( Max) variable. Cela garantira que la valeur résultante est stockée avec la limite maximale de caractères autorisée.

Par exemple, le code suivant attribuera correctement le type de données Nvarchar(Max) à @SQL1 depuis le début :

SET @SQL1 = NVARCHAR(Max)
SET @SQL1 = @SQL1 + 'SELECT DISTINCT VenueInfo.VenueID, VenueInfo.VenueName...
Copier après la connexion

Cette approche empêche le comportement de division entière, où les types de données sont déduits en fonction de la priorité des opérateurs. Dans ce cas, la priorité de l'affectation est toujours la dernière, comme dans les autres langages de programmation. Par conséquent, l'affectation ci-dessus traite la chaîne entière comme Nvarchar(Max) dès le départ.

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