Zapisywanie wyników z nagłówkami w Sql Server Management Studio

183

Korzystam z SQL Server Management Studio.

Chcę zapisać wyniki zapytania w pliku programu Excel.

Wybieram „zapisz jako”, a następnie zapisz w pliku CSV, który mogę otworzyć w programie Excel. Wszystko w porządku, ale brakuje mi nagłówków kolumn. Jakieś pomysły, jak je wyeksportować?

dublintech
źródło

Odpowiedzi:

274

Tools> Options> Query Results> SQL Server> Results to Text (or Grid if you want)>Include columns headers in the result set

Po zmianie tej opcji może być konieczne zamknięcie i ponowne otwarcie SSMS.

Na pasku narzędzi edytora SQL można wybrać opcję zapisu do pliku bez konieczności ponownego uruchamiania SSMS

Diego
źródło
35
+1, przetestowałem to i działa: Narzędzia -> Opcje -> Wyniki zapytania -> SQL Server -> Wyniki do siatki, a następnie zaznacz „Dołącz nagłówki kolumn podczas kopiowania lub zapisywania wyników”.
Jeff Ogata,
46
Działa to dla SSMS 2012 - musisz ponownie uruchomić SSMS, aby ustawienia odniosły skutek.
SliverNinja - MSFT
17
Aby potwierdzić, zdecydowanie musisz zamknąć i ponownie otworzyć SSMS, aby zastosować tę opcję.
Christopher King,
8
Jak powiedział Christopher, musisz ponownie uruchomić SSMS, aby zmiany zadziałały.
Rob
8
W przypadku SSMS 2016 nadal musisz go zrestartować, aby zmiany odniosły skutek.
Chris Haas,
36

Wypróbuj Kreatora eksportu. W tym przykładzie wybieram całą tabelę, ale równie łatwo możesz określić zapytanie:

wprowadź opis zdjęcia tutaj

wprowadź opis zdjęcia tutaj

wprowadź opis zdjęcia tutaj

wprowadź opis zdjęcia tutaj

(możesz również podać zapytanie tutaj)

wprowadź opis zdjęcia tutaj

wprowadź opis zdjęcia tutaj

wprowadź opis zdjęcia tutaj

wprowadź opis zdjęcia tutaj

wprowadź opis zdjęcia tutaj

John Dewey
źródło
4
Dziękuję za to. Ale to dotyczy tabel. Moje pytanie dotyczyło zapytania.
dublintech
1
Możesz również określić zapytanie w czwartym kroku - „Określ kopię tabeli lub zapytanie”.
John Dewey
Wypróbowałem wszystkie inne podejścia, i to jedyne, które zadziałało dla moich mieszanych typów danych.
DOK
3
Chociaż działa, jest to bardzo bolesne i czasochłonne. SQL Server i Excel to produkty MS, to niesamowite, że w 2013 roku nie ma prostego przycisku eksportu!
Andre
34

Inną możliwością jest użycie schowka do skopiowania i wklejenia wyników bezpośrednio do Excela. Bądź ostrożny z kolumnami Excel typu ogólnego, ponieważ mogą one czasami mieć nieprzewidywalne wyniki, w zależności od twoich danych. CTL-Aw dowolnym miejscu w tabeli wyników, a następnie kliknij prawym przyciskiem myszy:

wprowadź opis zdjęcia tutaj

Jeśli masz problemy z niepożądanym przekształcaniem formatu ogólnego programu Excel, zaznacz puste kolumny w programie Excel przed wklejeniem i zmień format na „tekstowy”.

John Dewey
źródło
To jest świetne, z wyjątkiem formatowania Excela. Liczby z wiodącymi zerami (np. Numery komórkowe) upuszczają zera w Excelu. Czekają też inne problemy z formatowaniem, które możesz wykorzystać na własne ryzyko. Dzięki Microsoft!
e_i_pi
12

Przynajmniej w SQL Server 2012 można kliknąć prawym przyciskiem myszy w oknie zapytania i wybrać Opcje zapytania. Stamtąd możesz wybrać opcję Dołącz nagłówki dla siatki i / lub tekstu, aby Zapisz jako działał tak, jak chcesz bez ponownego uruchamiania SSMS.

Nadal będziesz musiał to zmienić w Narzędzia-> Opcje na pasku menu, aby nowe okna zapytań domyślnie korzystały z tych ustawień.

Michael McCormick
źródło
7

Ten sam problem istnieje w Visual Studio, oto jak go rozwiązać:

Iść do:

Tools > Options > SQL Server Tools > Transact-SQL Editor > Query Results > Results To Grid

Teraz kliknij pole wyboru, aby uzyskać wartość true: „Dołącz nagłówki kolumn podczas kopiowania lub zapisywania wyników”

Nicholas Petersen
źródło
6

Wybierz wyniki, klikając w lewym górnym rogu, kliknij prawym przyciskiem myszy i wybierz „Kopiuj z nagłówkami”. Wklej w programie Excel. Gotowe!

Chris Dimitriu
źródło
4

Ustawienia, które zalecono zmienić w zaakceptowanej odpowiedzi @ Diego, mogą być dobre, jeśli chcesz ustawić tę opcję na stałe dla wszystkich przyszłych sesji zapytań otwieranych w SQL Server Management Studio (SSMS). Zazwyczaj tak nie jest. Ponadto zmiana tego ustawienia wymaga ponownego uruchomienia aplikacji SQL Server Management Studio (SSMS). Jest to znowu „niezbyt miłe” doświadczenie, jeśli masz wiele niezapisanych otwartych okien sesji zapytań i jesteś w trakcie debugowania.

SQL Server oferuje bardzo płynną opcję zmieniania go w zależności od sesji, co jest bardzo szybkie, wygodne i wygodne . Szczegółowo opisuję poniższe kroki za pomocą okna opcji zapytania:

  1. Kliknij prawym przyciskiem myszy w oknie edytora zapytań> Kliknij Query Options...na dole menu kontekstowego, jak pokazano poniżej:

wprowadź opis zdjęcia tutaj

  1. Wybierz Results> Gridw lewym panelu nawigacji. Zaznacz Include column headers when copying or saving the resultspole wyboru w prawym okienku, jak pokazano poniżej:

wprowadź opis zdjęcia tutaj

Otóż ​​to. Twoja bieżąca sesja zaakceptuje twoje ustawienia ze skutkiem natychmiastowym bez ponownego uruchamiania SSMS. Ponadto to ustawienie nie będzie propagowane do żadnej przyszłej sesji. Skuteczna zmiana tego ustawienia dla poszczególnych sesji jest znacznie mniej głośna.

RBT
źródło
2

Dotarliśmy tutaj, szukając sposobu, aby SSMS właściwie unikał separatorów CSV podczas eksportowania wyników.

Zgadnij co? - jest to właściwie opcja i jest domyślnie odznaczona . Tak więc domyślnie dostajesz uszkodzone pliki CSV (i może nawet nie zdajesz sobie z tego sprawy, szczególnie jeśli twój eksport jest duży i twoje dane nie mają przecinków normalnie) - i musisz wejść i kliknąć pole wyboru, aby eksportować CSV prawidłowo!

Wydaje mi się, że to wybitnie głupi wybór projektu i trafna metafora ogólnego podejścia Microsoftu do oprogramowania („zepsuta domyślnie wymaga bezsensownych działań rytualistycznych, aby trywialna funkcjonalność działała”).

Ale chętnie przekażę 100 USD na cele dobroczynne wybrane przez respondenta, jeśli ktoś może podać mi jeden prawdziwy uzasadniony powód, dla którego ta opcja istnieje (tj. Faktyczny scenariusz, w którym była przydatna).

Daibhi O Domhnaill
źródło
2

W SQL Server 2014 Management Studio ustawienie to:

Narzędzia> Opcje> Wyniki zapytania> SQL Server> Wyniki do tekstu> Uwzględnij nagłówki kolumn w zestawie wyników.

Jason Lewis
źródło
0

Mam również ten sam problem. Kiedy użyłem prawym przyciskiem myszy w oknie zapytania i wybierz Opcje zapytania. Ale wiersze nagłówka nie są wyświetlane w wyjściowym pliku CSV.

Następnie wylogowuję się z serwera, loguję ponownie i uruchamiam skrypt. Potem zadziałało.

hardik rawal
źródło
Czy próbowałeś zmienić Include column headers when copying or saving the resultsopcję? Ta opcja jest widoczna po wybraniu Results> Gridw lewym okienku nawigacji w Query Optionsoknie.
RBT,