PRINT Convert(VarChar(Max),Replicate('1234567890 ',1000))
Cela revient à la fenêtre 7997 caractères.SQL Server 2008 VarChar (Max) renvoie seulement 8000 caractères. Pourquoi?
SELECT Convert(VarChar(Max),Replicate('1234567890 ',1000))
Cela revient à la grille 7996 caractères. Le caractère supplémentaire dans la fenêtre d'impression est un CRLF. J'ai mes options en tant que telles: Outils → Options → Résultats de la requête → Résultats au texte → Nombre maximum de caractères affichés dans chaque colonne = 8192
Donc, je voudrais attendre 8 192 caractères à retourner dans la grille, et je voudrais Attendez-vous à ce que 11 001 caractères soient retournés à ma fenêtre.
Ensuite, il y a ce test:
DECLARE @VarCharMax VarChar(Max)
SET @VarCharMax = Replicate('123456',2000)
SELECT Right(@VarCharMax,3) -- returns 456
SELECT Right(Left(@VarCharMax,8000),3) -- returns 456
SELECT Right(Left(@VarCharMax,7999),3) -- returns 456
SELECT Right(Left(@VarCharMax,7998),3) -- returns 456
SELECT Right(Left(@VarCharMax,7997),3) -- returns 345
SELECT Right(Left(@VarCharMax,7996),3) -- returns 234
Qu'est-ce que je manque à comprendre ici? Il ne semble pas se comporter du tout comme je m'attendrais?
Par défaut, il tronque à 8K, mais vous pouvez augmenter les résultats. c'est-à-dire en utilisant varchar (max) comme OP l'a fait – scsimon
La distribution n'est pas au résultat mais à l'argument –
Oui ... vous avez édité votre message après mon commentaire. – scsimon