J'ai un champ pour stocker des données, le champ est déclaré comme varchar(max)
. À ma connaissance, cela devrait être de stocker des 2^31 - 1
caractères, mais lorsque j'entre un contenu de plus de 8 000 caractères, cela coupe le reste.
J'ai vérifié que toutes les données sont incluses dans ma déclaration de mise à jour et la requête semble correcte partout ailleurs, mais lorsque je sélectionne les données, elles ont été coupées.
Les données sont tronquées lorsque je les affiche sur mon site Web et également lorsque j'utilise SSMS pour select content from table
.
select DATALENGTH (content) from table
revient en tant que 8000.
Je mis les données en utilisant ceci: update table set content = 'my long content' where id = 1
. Le contenu contient beaucoup de code HTML, mais je ne vois pas que cela cause des problèmes. La seule chose que je peux voir que je fais remplace tout "
avec ''
comme cela est contenu entré utilisateur (ne me souviens pas pourquoi je l' ai fait maintenant).
J'ai réussi à faire entrer le contenu correctement en supprimant toutes les guillemets simples dans le contenu, donc je pense qu'il se passe quelque chose d'étrange avec mes données plutôt qu'avec la base de données.
Dois-je faire quelque chose de spécial avec la requête pour utiliser un varchar(max)
champ?
Utilisation: SQL Server 2008 (10.50) 64 bits.
la source