Maison >base de données >tutoriel mysql >Pourquoi ma chaîne nvarchar(max) est-elle tronquée à 4 000 caractères dans SQL Server 2005 ?

Pourquoi ma chaîne nvarchar(max) est-elle tronquée à 4 000 caractères dans SQL Server 2005 ?

Mary-Kate Olsen
Mary-Kate Olsenoriginal
2025-01-01 08:46:10309parcourir

Why is my nvarchar(max) string truncated to 4000 characters in SQL Server 2005?

Troncation de la chaîne Nvarchar(Max) dans SS 2005

Pourquoi une chaîne déclarée comme nvarchar(max) ne récupère-t-elle que 4000 caractères dans TSQL en SS 2005 ?

Solution

Malgré la déclaration de @SQL1 comme nvarchar(max), il stocke initialement une collection de chaînes courtes (@alldate, @alldateprevweek) avec chacune moins de 4000 personnages. Le processus de concaténation de chaînes les traite comme des chaînes non maximales et remplit ensuite @SQL1 avec un maximum de 4 000 caractères.

Pour résoudre ce problème, assurez-vous que tout le côté droit de l'affectation à @SQL1 est nvarchar. (maximum). Par exemple, initialisez @SQL1 en tant que chaîne vide avant de concaténer la constante nvarchar(max) :

SET @SQL1 = ''
SET @SQL1 = @SQL1 + 'SELECT DISTINCT Venue...

L'opérateur d'affectation a la priorité la plus basse, similaire à la division entière dans d'autres langages. Par conséquent, la priorité des types de données est déterminée par affectation et non par concaténation.

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!

Déclaration:
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