Question

Dans SSMS lorsque je tente d'exécuter:

SELECT CONVERT(VARCHAR(MAX), REPLICATE('a',9000))    

Je ne vois que les premiers 8000 caractères affichés. Les paramètres Outil >> Options >> Résultats de la requête >> >> Résultats Sql Server à la grille est à 65534 et Résultats de Texte est 8192.

De même, lorsque je tente de faire exécuter par SQLCMD

sqlcmd -S Server -E -y 0 -Q "SELECT CONVERT(VARCHAR(MAX), REPLICATE('a',9000))" -o out.txt

Je ne vois que 8000 charecters.

Le drapeau -y 0 est censé le mettre à 1 MB. Mais je ne suis pas plus de 8000 caractères.

Quel pourrait être le problème?

Merci,
_UB

Était-ce utile?

La solution

REPRODUIRE sortie est basée sur l'entrée de type de données. Donc, ce qui explique sqlcmd.

  

Si l'expression de la chaîne est pas de type varchar (max) ou nvarchar (max),   REPLICATE tronque la valeur de retour   à 8000 octets. Pour revenir valeurs   supérieure à 8000 octets,   l'expression de la chaîne doit être explicitement   jeter à la grande valeur appropriée   type de données.

Alors, utilisez ce SELECT REPLICATE(CONVERT(VARCHAR(MAX), 'a'), 9000)

Et SSMS n'a jamais montré toutes les données de texte (n'a pas non plus Analyseur de requêtes)

Autres conseils

VARCHAR (MAX) est seulement capable de contenir 8000 caractères

voir ici

De MSDN:

  

varchar [(n | max)] -   Longueur variable, le caractère non-Unicode   Les données. n peut être une valeur comprise entre 1 et   8000. max indique que le maximum   la taille de stockage est de 2 ^ 31-1 octets

Joseph (ci-dessous) dit, de tenir plus, utilisez un texte ou le type de données ntext, mais si vous voulez être en mesure de rechercher, alors vous auriez besoin d'une forme d'indexation de texte intégral est activée.

meilleur lien

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top