T-SQL de type VARCHAR(MAX) Tronquée

DECLARE @str VARCHAR (MAX);

SELECT @str = COALESCE(@str + CHAR(10), '') +
       'EXECUTE CreateDeno ' + CAST(ID AS VARCHAR) 
FROM   GL_To_Batch_Details
WHERE  TYPE = 'C' AND
       Deno_ID IS NULL;

--PRINT @str;--SELECT @str;
**EXEC(@str);**

ÉDITÉ

Ne EXECUTE instruction truncate chaînes à 8 000 caractères comme PRINT? Comment puis-je exécuter une instruction SQL dynamique ayant plus de 8 000 caractères?

Toute suggestion serait chaudement apprécié.

Je pense que vous êtes confus, vous ne pouvez pas PRINT plus de 8000 caractères, cela ne signifie pas que @str est tronqué
J'ai édité la question pour être plus précis sur le problème. En fait, quand EXÉCUTER produite l'erreur, j'ai utilisé l'IMPRESSION de voir quelle a été la dynamique de T-SQL généré. Dans les deux cas, nvarchar(MAX) a été tronqué. Des idées?

OriginalL'auteur Nick Binnet | 2011-09-12