Come si visualizza TUTTO il testo da un NTEXT o NVARCHAR (max) in SQL Server Management Studio? Per impostazione predefinita, sembra solo restituire le prime centinaia di caratteri (255?), Ma a volte voglio solo un modo rapido di visualizzare l'intero campo, senza dover scrivere un programma per farlo. Anche SSMS 2012 presenta ancora questo problema :(
Opzioni (Risultati query/SQL Server/Risultati alla pagina griglia)
Per modificare le opzioni per le query correnti, fare clic su Opzioni query nel menu Query o fare clic con il pulsante destro del mouse nella finestra Query di SQL Server e selezionare Opzioni query.
...
Numero massimo di caratteri recuperati
Immettere un numero compreso tra 1 e 65535 per specificare il numero massimo di caratteri che verranno visualizzati in ciascuna cella.
Il massimo è, come vedi, 64k. L'impostazione predefinita è molto più piccola.
A proposito Results to Text ha limitazioni ancora più drastiche:
Numero massimo di caratteri visualizzati in ciascuna colonna
Il valore predefinito è 256. Aumentare questo valore per visualizzare set di risultati più grandi senza troncamento. Il valore massimo è 8.192.
Sono stato in grado di ottenere il testo completo (99.208 caratteri) da una colonna NVARCHAR (MAX) selezionando (Risultati per griglia) solo quella colonna e facendo clic con il tasto destro su di essa e salvando il risultato come file CSV. Abbastanza divertente, quando ho provato a eseguire la stessa query, ma con Risultati su file abilitati, l'output è stato troncato utilizzando il limite Risultati su testo.
Il problema che @MartinSmith ha descritto come un commento alla risposta (attualmente) accettata non ha funzionato per me (si è verificato un errore durante il tentativo di visualizzare il risultato XML completo lamentandosi di "Il carattere '[', valore esadecimale 0x5B, non può essere incluso in un nome ").
Trucco veloce
SELECT CAST('<A><![CDATA[' + CAST(LogInfo as nvarchar(max)) + ']]></A>' AS xml)
FROM Logs
WHERE IDLog = 904862629
Ho scritto un componente aggiuntivo per SSMS e questo problema è stato risolto lì. Puoi usare uno dei 2 modi:
puoi usare "Copia la cella corrente 1: 1" per copiare i dati della cella originale negli appunti:
http://www.ssmsboost.com/Features/ssms-add-in-copy-results-grid-cell-contents-line-with-breaks
Oppure, in alternativa, puoi aprire il contenuto della cella nell'editor di testo esterno (notepad ++ o notepad) utilizzando la funzione "Visualizzatori di celle": http://www.ssmsboost.com/Features/ssms-add-in-results-grid -visualizers
(la funzione consente di aprire i contenuti del campo in qualsiasi applicazione esterna, quindi se sai che si tratta di testo, usi l'editor di testo per aprirlo. Se i contenuti sono dati binari con l'immagine, selezioni la vista come immagine. L'esempio sotto mostra l'apertura di un'immagine ):
Il modo più semplice per visualizzare rapidamente grandi colonne varchar/text:
declare @t varchar(max)
select @t = long_column from table
print @t