Sqlserver
 sql >> Base de Dados >  >> RDS >> Sqlserver

Campo do SQL Server sendo truncado


Seu problema é que você acha que o Management Studio vai lhe apresentar todos os dados. Não. Vá para Ferramentas> Opções> Resultados da Consulta> SQL Server. Se você estiver usando Resultados para Grade, altere "Máximo de Caracteres Recuperados" por "Dados Não XML" (apenas observe que Resultados para Grade eliminarão qualquer CR/LF). Se você estiver usando Resultados para Texto, altere "Número máximo de caracteres exibidos em cada coluna".



Você pode ficar tentado a inserir mais, mas o máximo que você pode retornar no Management Studio é:
65535 for Results to Grid
8192  for Results to Text

Se você realmente deseja ver todos os dados no Management Studio, pode tentar convertê-los em XML, mas isso também apresenta problemas. Primeiro defina Resultados para Grade> Dados XML para 5 MB ou ilimitado, depois faça:
SELECT CONVERT(XML, column) FROM dbo.table WHERE...

Agora, isso produzirá um resultado de grade onde o link é realmente clicável. Isso abrirá uma nova janela do editor (não será uma janela de consulta, portanto não terá botões de execução, IntelliSense, etc.) com seus dados convertidos em XML. Isso significa que ele substituirá > com > etc. Aqui está um exemplo rápido:
SELECT CONVERT(XML, 'bob > sally');

Resultado:



Ao clicar na grade, você obtém esta nova janela:



(Ele meio que tem IntelliSense, validando o formato XML, e é por isso que você vê os rabiscos.)

DE VOLTA AO RANCH

Se você quiser apenas verificar a sanidade e não quiser copiar todos os 383K em outro lugar, não faça isso! Basta verificar usando:
SELECT DATALENGTH(column) FROM dbo.table WHERE...

Isso deve mostrar que seus dados foram capturados pelo banco de dados, e o problema é a ferramenta e seu método de verificação.

(Desde então escrevi uma dica sobre isso aqui .)