Eu tenho um campo para armazenar alguns dados, o campo é declarado como varchar(max)
. Para meu entendimento, isso deve armazenar 2^31 - 1
caracteres, mas quando insiro um conteúdo com mais de 8000 caracteres, ele corta o resto.
Verifiquei que todos os dados estão incluídos na minha declaração de atualização e a consulta parece bem em qualquer outro lugar, mas quando seleciono os dados novamente, eles foram cortados.
Os dados são truncados quando eu os exibo no meu site e também quando eu uso o SSMS para select content from table
.
select DATALENGTH (content) from table
volta como 8000.
I definir a dados usando o seguinte: update table set content = 'my long content' where id = 1
. O conteúdo tem muito HTML, mas não vejo isso causando problemas. A única coisa que eu posso ver que eu estou fazendo está substituindo todos "
com ''
como este é usuário conteúdo digitado (não me lembro por que fiz isso agora).
Consegui fazer com que o conteúdo fosse inserido corretamente, removendo todas as aspas simples no conteúdo, então acho que algo estranho está acontecendo com meus dados e não com o banco de dados.
Devo estar fazendo algo especial com a consulta para usar um varchar(max)
campo?
Usando: SQL Server 2008 (10.50) de 64 bits.
fonte