2012-01-19 17 views
17

Jak uzyskać pełną zawartość wierszy w SQL Server Management Studio?Jak uzyskać pełny zestaw wyników z SSMS

Jeśli używasz "results to grid" dane są zakodowane, więc takie rzeczy jak linie podziału są tracone. Jeśli wykonujesz "result to file" lub "results to text", tekst jest ograniczony do 8192 znaków.

UWAGA: Mam rozwiązanie, ale używam SO, aby to udokumentować. Jeśli masz lepszą odpowiedź, możesz to opublikować.

Odpowiedz

0

Jednym z DBA w mojej firmie zaproponował możliwym rozwiązaniem jest umieszczenie danych w zmiennej tymczasowej, a następnie użyj funkcji drukowania w pętli, tak jak poniżej:

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

rzucam go do XML

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

processing-instruction bit jest tam, aby zatrzymać go entitising znaków takich jak < do &lt;

+0

Po prostu wybranie go do formatu xML da ci wszystkie dane? Interesujące ... – javamonkey79

+0

Aby to zadziałało najpierw musiałem wybierz moje dane kolumny do zmiennej, a następnie wykonaj konwersję XML zgodnie z opisem. – danjuggler

+0

można to zrobić w sprytną funkcję lub coś, co mogę zapamiętać –

4

I rozwijać dodatek dla SSMS - "SSMSBoost" i ostatnio dodano funkcję "Kopiuj zawartość komórki 1: 1" (dostępna w menu kontekstowym siatki). Zwróci wszystkie dane z komórki bez żadnych modyfikacji i bez obcięcia.

2

Wystarczy użyć domyślnego „wyniki do siatki, a następnie kliknij prawym przyciskiem myszy na wynikach siatki i wybierz«Zapisz wyniki jako ...»CSV.

Pełna treść zostanie zapisany w pliku, nawet z przerwami liniowych Niektóre kolumny varchar (max) miały zawartość około 3MB i zostały zapisane OK, a nie skrócone

Powiązane problemy