2012-01-19 15 views
17

Come si recupera il contenuto completo di righe in SQL Server Management Studio?come ottenere il set di risultati completo da SSMS

Se si utilizza "risultati in griglia", i dati vengono codificati, pertanto elementi come interruzioni di riga vengono persi. Se si esegue "result to file" o "results to text" il testo è limitato a 8192 caratteri.

NOTA: ho la soluzione, ma sto usando SO per documentarlo. Se hai una risposta migliore, sentiti libero di postarla.

risposta

0

Uno dei DBA presso la mia azienda ha suggerito una possibile soluzione è quella di inserire i dati in una variabile temporanea e quindi utilizzare la funzione di stampa in un ciclo, in questo modo:

DECLARE @contents varchar(MAX) 
SET @contents = '' 

SELECT  @contents = @contents + Contents + CHAR(13) 
FROM   dbo.tFOO 
WHERE  someConition 

DECLARE @tContents TABLE (id int IDENTITY, contents varchar(MAX)) 

WHILE @contents LIKE '%' + CHAR(13) + '%' 
BEGIN 
    PRINT SUBSTRING(@contents, 0, CHARINDEX(CHAR(13), @contents)) 

    SET @contents = SUBSTRING(@contents, CHARINDEX(CHAR(13), @contents)+1, LEN(@contents) - CHARINDEX(CHAR(13), @contents)) 
END 
35

ho gettato a XML

select @variable_with_long_text 
as [processing-instruction(x)] FOR XML PATH 

Il bit processing-instruction è lì per fermarlo entitising personaggi come <-&lt;

+0

Semplicemente convertendolo in xML ti verranno dati tutti i dati? Interessante. – javamonkey79

+0

Per far funzionare tutto questo dovevo prima selezionare i dati della mia colonna in una variabile e quindi eseguire la conversione XML come descritto. – danjuggler

+0

può essere trasformato in una funzione intelligente o qualcosa che posso ricordare –

4

ho sviluppato un componente aggiuntivo per SSMS - "SSMSBoost" e recentemente aggiunto "Copia contenuto cella 1: 1" (accessibile in contesto menu di Grid). Restituirà tutti i dati dalla cella senza alcuna modifica e senza troncare.

2

Basta usare il default "Risultati a griglia, quindi fare clic destro sui risultati della griglia e selezionare 'Salva i risultati come ...' CSV.

Il contenuto completo sarà salvato nel file, anche con interruzioni di riga Alcune colonne varchar (max) hanno un contenuto di circa 3 MB e sono state salvate OK, non troncate

Problemi correlati