2009-03-26 11 views
3

J'ai donc une procédure stockée dans une base de données SQLServer 2005, qui récupère les données d'une table, formate les données sous forme de chaîne et les place dans une variable de sortie varchar (max).Pourquoi la longueur maximale de varchar est-elle inférieure à 8 000 octets?

Cependant, je remarque que bien que len (s) indique que la chaîne est> 8 000, la chaîne réelle que je reçois (via la fenêtre de sortie SQLServer) est toujours tronquée à < 8 000 octets.

Est-ce que quelqu'un sait quelles pourraient être les causes? Merci beaucoup.

+0

Je pense que Sql Server Management Studio a une limite de longueur de colonne de sortie, peut-être que vous pouvez configurer cela. – JSC

+0

Oui, il est configurable sous "Outils-> Options-> Résultats de requête-> SQL Server" De là, regardez à la fois "Results to Grid" et "Results to Text" –

Répondre

7

La fenêtre de sortie elle-même tronque vos données, probablement. La variable elle-même contient les données mais la fenêtre affiche uniquement les premiers caractères X.

Si vous deviez lire cette variable de sortie à partir, par exemple, d'une application .NET, vous verriez la valeur complète.

+0

Ceci est certainement ce qui se passe - Je sais que Management Studio tronque à un certain point, je ne sais pas exactement la longueur. –

5

Parlez-vous de SQL Server Management Studio? Si oui, il y a quelques options pour contrôler combien de caractères sont retournés (j'ai seulement 2008 devant moi, mais les paramètres sont dans Outils | Options | Résultats de la requête | SQL Server | Résultats à la grille | Maximum de caractères récupérés et résultats au texte |.. Le nombre maximum de caractères affichés dans chaque colonne

0

les données sont tous là, mais studio de gestion n'affiche pas toutes les données

dans des cas comme cela, je l'ai utilisé MS Access pour créer un lien vers Il est triste que vous ayez à utiliser Access pour voir les données à la place de Management Studio ou Query Analyzer, mais cela semble être le cas

0

Cependant, je remarque que en (s) signale la chaîne à> 8 000

Je suis tombé aussi pour le problème SQL Studio :) mais n'est pas la longueur maximale de 8 000 octets varchar, ou 4 000 pour nvarchar (unicode).

Toute chance type de données de la colonne est en fait texte ou ntext et vous convertir à varchar?

Questions connexes