risposta-alla-domanda-sullo-sviluppo-web-bd.com

Come visualizzi TUTTO il testo da un ntext o nvarchar (max) in SSMS?

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 :(

156
NickG

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.

79
Remus Rusanu

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 ").

176
Eric

Trucco veloce

SELECT CAST('<A><![CDATA[' + CAST(LogInfo as nvarchar(max)) + ']]></A>' AS xml)
FROM Logs
WHERE IDLog = 904862629
105
André Kops

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-breaksCopy original cell contents

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 ):SSMS Results grid visualizers

51

Il modo più semplice per visualizzare rapidamente grandi colonne varchar/text:

declare @t varchar(max)

select @t = long_column from table

print @t
0