Salvataggio dei risultati con le intestazioni in SQL Server Management Studio


183

Sto usando SQL Server Management Studio.

Vorrei salvare i risultati di una query in un file Excel.

Scelgo "salva con nome" e quindi salvo il file CSV che posso aprire in Excel. Tutto bene tranne che mi mancano le intestazioni di colonna, qualche idea su come ottenerle esportate?

Risposte:


274

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

Potrebbe essere necessario chiudere e riaprire SSMS dopo aver modificato questa opzione.

Nella barra degli strumenti dell'editor SQL è possibile selezionare Salva su file senza riavviare SSMS


35
+1, testato e funziona: Strumenti -> Opzioni -> Risultati della query -> SQL Server -> Risultati nella griglia, quindi selezionare "Includi intestazioni di colonna durante la copia o il salvataggio dei risultati".
Jeff Ogata,

46
Funziona con SSMS 2012: è necessario riavviare SSMS per rendere effettive le impostazioni.
SliverNinja - MSFT,

17
Per confermare, è assolutamente necessario chiudere e riaprire SSMS per applicare questa opzione.
Christopher King,

8
Come ha detto Christopher, è necessario riavviare SSMS affinché le modifiche funzionino.
Rob,

8
Per SSMS 2016 è inoltre necessario riavviarlo affinché queste modifiche abbiano effetto.
Chris Haas,

36

Prova l'esportazione guidata. In questo esempio seleziono un'intera tabella, ma puoi altrettanto facilmente specificare una query:

inserisci qui la descrizione dell'immagine

inserisci qui la descrizione dell'immagine

inserisci qui la descrizione dell'immagine

inserisci qui la descrizione dell'immagine

(puoi anche specificare una query qui)

inserisci qui la descrizione dell'immagine

inserisci qui la descrizione dell'immagine

inserisci qui la descrizione dell'immagine

inserisci qui la descrizione dell'immagine

inserisci qui la descrizione dell'immagine


4
Grazie per quello Ma questo è per i tavoli. La mia domanda era per una domanda.
dublintech,

1
È inoltre possibile specificare una query nel quarto passaggio: "Specifica copia tabella o query".
John Dewey,

Ho provato tutti gli altri approcci, e questo è l'unico che ha funzionato per i miei tipi di dati misti.
DOK

3
Mentre funziona, è molto doloroso e richiede tempo. SQL Server ed Excel sono entrambi prodotti MS, è sorprendente che non ci sia un semplice pulsante di esportazione nell'anno 2013!
Andre

34

Un'altra possibilità è utilizzare gli Appunti per copiare e incollare i risultati direttamente in Excel. Fai solo attenzione con le colonne di tipo Generale Excel, poiché a volte possono avere risultati imprevedibili, a seconda dei tuoi dati. CTL-Ain qualsiasi punto della griglia dei risultati, quindi fare clic con il tasto destro:

inserisci qui la descrizione dell'immagine

In caso di problemi con il formato Generale di Excel che esegue conversioni indesiderate, selezionare le colonne vuote in Excel prima di incollare e modificare il formato in "testo".


Questo è fantastico, tranne per la formattazione di Excel. I numeri con zeri iniziali (ad es. Numeri mobili) rilasciano gli zeri in Excel. Ci sono anche altri problemi di formattazione in attesa, da usare a proprio rischio e pericolo. Grazie Microsoft!
e_i_pi

12

Almeno in SQL Server 2012, è possibile fare clic con il pulsante destro del mouse nella finestra della query e selezionare Opzioni query. Da lì puoi selezionare Includi intestazioni per griglia e / o testo e fare in modo che Salva con nome funzioni come desideri senza riavviare SSMS.

Dovrai comunque modificarlo in Strumenti-> Opzioni nella barra dei menu per fare in modo che le nuove finestre delle query utilizzino tali impostazioni per impostazione predefinita.


7

Lo stesso problema esiste in Visual Studio, ecco come risolverlo lì:

Vai a:

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

Ora fai clic sulla casella di controllo su true: "Includi intestazioni di colonna quando copi o salvi i risultati"


6

Seleziona i risultati facendo clic nell'angolo in alto a sinistra, fai clic destro e seleziona "Copia con intestazioni". Incolla in Excel. Fatto!


4

Le impostazioni che è stato consigliato di modificare nella risposta accettata di @ Diego potrebbero essere buone se si desidera impostare questa opzione in modo permanente per tutte le sessioni di query future aperte in SQL Server Management Studio (SSMS). Questo di solito non è il caso. Inoltre, la modifica di questa impostazione richiede il riavvio dell'applicazione SQL Server Management Studio (SSMS). Questa è di nuovo un'esperienza "non così piacevole" se hai molte finestre della sessione di query aperte non salvate e sei nel mezzo di un debug.

SQL Server offre un'opzione molto semplice per modificarlo in base alla sessione, il che è molto rapido, pratico e conveniente . Sto dettagliatamente i passaggi seguenti usando la finestra delle opzioni di query:

  1. Fare clic con il tasto destro nella finestra dell'editor di query> Fare clic Query Options...nella parte inferiore del menu di scelta rapida, come mostrato di seguito:

inserisci qui la descrizione dell'immagine

  1. Selezionare Results> Gridnel riquadro di navigazione sinistro. Seleziona la Include column headers when copying or saving the resultscasella di controllo nel riquadro destro come mostrato di seguito:

inserisci qui la descrizione dell'immagine

Questo è tutto. La sessione corrente rispetterà le tue impostazioni con effetto immediato senza riavviare SSMS. Inoltre, questa impostazione non verrà propagata a nessuna sessione futura. La modifica effettiva di questa impostazione in base alla sessione è molto meno rumorosa.


2

È arrivato qui quando cercavo un modo per far sì che SSMS sfuggisse correttamente ai separatori CSV durante l'esportazione dei risultati.

Indovina un po? - questa è in realtà un'opzione ed è deselezionata per impostazione predefinita . Quindi, per impostazione predefinita, ottieni file CSV rotti (e potresti anche non rendertene conto, specialmente se l'esportazione è grande e i tuoi dati non hanno virgole normalmente) - e devi andare e fare clic su una casella di controllo in modo che i tuoi CSV esportino correttamente!

Per me, questa sembra una scelta di design monumentalmente stupida e una metafora appropriata per l'approccio di Microsoft al software in generale ("rotto per impostazione predefinita, richiede azioni rituali insignificanti per far funzionare la banale funzionalità").

Ma donerò volentieri $ 100 a un'associazione benefica di scelta del rispondente se qualcuno può darmi una valida ragione di vita reale per questa opzione (cioè uno scenario reale in cui è stato utile).


2

In SQL Server 2014 Management Studio l'impostazione è:

Strumenti> Opzioni> Risultati della query> SQL Server> Risultati su testo> Includi intestazioni di colonna nel set di risultati.


0

Devo anche affrontare lo stesso problema. Quando ho usato il tasto destro del mouse nella finestra della query e selezionare Opzioni query. Ma le righe di intestazione non vengono visualizzate nel file CSV di output.

Quindi disconnetto il server, eseguo nuovamente l'accesso ed eseguo lo script. Quindi ha funzionato.


Hai provato a cambiare l' Include column headers when copying or saving the resultsopzione? Questa opzione è visibile quando si seleziona Results> Gridnel riquadro di navigazione sinistro della Query Optionsfinestra.
RBT,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.