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!