Sqlserver
 sql >> Database >  >> RDS >> Sqlserver

Il campo di SQL Server viene troncato

Il tuo problema è che pensi che Management Studio ti presenterà tutti i dati. Non è così. Vai a Strumenti> Opzioni> Risultati query> SQL Server. Se stai usando Risultati per griglia, cambia "Caratteri massimi recuperati" per "Dati non XML" (basta notare che Risultati per griglia eliminerà qualsiasi CR/LF). Se stai utilizzando Risultati in testo, modifica "Numero massimo di caratteri visualizzati in ciascuna colonna".

Potresti essere tentato di inserire di più, ma il massimo che puoi restituire in Management Studio è:

65535 for Results to Grid
8192  for Results to Text

Se vuoi davvero vedere tutti i dati in Management Studio, puoi provare a convertirli in XML, ma anche questo ha problemi. Per prima cosa imposta Results To Grid> Dati XML su 5 MB o illimitato, quindi esegui:

SELECT CONVERT(XML, column) FROM dbo.table WHERE...

Ora questo produrrà un risultato della griglia in cui il collegamento è effettivamente selezionabile. Si aprirà una nuova finestra dell'editor (non sarà una finestra di query, quindi non avrà pulsanti di esecuzione, IntelliSense, ecc.) con i tuoi dati convertiti in XML. Ciò significa che sostituirà > con > ecc. Ecco un rapido esempio:

SELECT CONVERT(XML, 'bob > sally');

Risultato:

Quando fai clic sulla griglia, ottieni questa nuova finestra:

(In un certo senso ha IntelliSense, che convalida il formato XML, motivo per cui vedi gli squiggiles.)

DI RITORNO AL RANCH

Se vuoi solo controllare la integrità e non vuoi davvero copiare tutti i 383K altrove, allora non farlo! Basta controllare usando:

SELECT DATALENGTH(column) FROM dbo.table WHERE...

Questo dovrebbe mostrarti che i tuoi dati sono stati acquisiti dal database e il problema è lo strumento e il tuo metodo di verifica.

(Da allora ho scritto un suggerimento al riguardo qui .)