Sonuçları Sql Server Management Studio'da başlıklarla kaydetme


183

SQL Server Management Studio kullanıyorum.

Sorgu sonuçlarını bir excel dosyasına kaydetmek istiyorum.

"Farklı kaydet" i seçiyorum ve sonra Excel'de açabileceğim CSV dosyasına kaydediyorum. Ben sütun başlıkları eksik hariç tüm iyi, nasıl onları ihraç olsun nasıl herhangi bir fikir?

Yanıtlar:


274

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

Bu seçeneği değiştirdikten sonra SSMS'yi kapatıp yeniden açmanız gerekebilir.

SQL Editör Araç Çubuğu'nda SSMS'yi yeniden başlatmak zorunda kalmadan dosyaya kaydet'i seçebilirsiniz


35
+1, Bunu test etti ve çalışıyor: Araçlar -> Seçenekler -> Sorgu Sonuçları -> SQL Server -> Sonuçlar Izgaraya, ardından 'Sonuçları kopyalarken veya kaydederken sütun başlıklarını dahil et' seçeneğini işaretleyin.
Jeff Ogata

46
Bu, SSMS 2012 için geçerlidir - ayarların etkili olması için SSMS'yi yeniden başlatmanız gerekir .
SliverNinja - MSFT

17
Onaylamak için, bu seçeneğin uygulanabilmesi için kesinlikle SSMS'yi kapatıp yeniden açmanız gerekir.
Christopher King

8
Christopher'ın dediği gibi, değişikliklerin çalışması için SSMS'yi yeniden başlatmanız gerekiyor.
Rob

8
SSMS 2016 için, bu değişikliklerin etkili olması için yine de yeniden başlatmanız gerekir.
Chris Haas

37

Dışa Aktarma Sihirbazı'nı deneyin. Bu örnekte tüm tabloyu seçiyorum, ancak bir sorguyu kolayca belirtebilirsiniz:

resim açıklamasını buraya girin

resim açıklamasını buraya girin

resim açıklamasını buraya girin

resim açıklamasını buraya girin

(burada bir sorgu da belirleyebilirsiniz)

resim açıklamasını buraya girin

resim açıklamasını buraya girin

resim açıklamasını buraya girin

resim açıklamasını buraya girin

resim açıklamasını buraya girin


4
Bunun için teşekkürler. Ama bu tablolar için. Sorum bir sorgu içindi.
dublintech

1
Dördüncü adımda "Tablo Kopyasını veya Sorguyu Belirle" de bir sorgu belirleyebilirsiniz.
John Dewey

Diğer tüm yaklaşımları denedim ve bu benim karışık veri tiplerim için çalışan tek yaklaşımdı.
DOK

3
Bu çalışırken çok acı verici ve zaman alıcıdır. SQL Server ve Excel'in her ikisi de MS ürünüdür, 2013 yılında basit bir dışa aktarma düğmesinin olmaması şaşırtıcı!
Andre

34

Başka bir olasılık, sonuçları doğrudan Excel'e kopyalayıp yapıştırmak için panoyu kullanmaktır. Verilerinize bağlı olarak bazen tahmin edilemeyen sonuçlar elde edebildikleri için Genel tür Excel sütunlarına dikkat edin. CTL-Asonuç ızgarasında herhangi bir yere tıklayın ve ardından sağ tıklayın:

resim açıklamasını buraya girin

Excel'in Genel biçiminde istenmeyen dönüşümler yapma konusunda sorun yaşıyorsanız, biçimi yapıştırıp "metin" olarak değiştirmeden önce Excel'deki boş sütunları seçin.


Excel biçimlendirme dışında bu harika. Başında sıfır olan sayılar (örneğin, mobil sayılar) Excel'de sıfırları düşürür. Beklemekte olan başka biçimlendirme sorunları da vardır, kendi tehlikenizde kullanın. Teşekkürler Microsoft!
e_i_pi

12

En azından SQL Server 2012'de, sorgu penceresine sağ tıklayıp Sorgu Seçenekleri'ni seçebilirsiniz. Buradan ızgara ve / veya metin için Üstbilgileri Dahil Et'i seçebilir ve Farklı Kaydet'i SSMS'yi yeniden başlatmadan istediğiniz şekilde çalıştırabilirsiniz.

Yeni sorgu pencerelerinin varsayılan olarak bu ayarları kullanmasını sağlamak için menü çubuğundaki Araçlar-> Seçenekler'den değiştirmeniz gerekir.


7

Aynı sorun Visual Studio'da da var, işte burada nasıl düzeltileceği:

Şuraya git:

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

Şimdi doğru kutusunu işaretleyin: "Sonuçları kopyalarken veya kaydederken sütun başlıklarını dahil et"


6

Sol üst köşede tıklayarak sonuçlarınızı seçin, sağ tıklayın ve "Başlıklarla Kopyala" yı seçin. Excel'de yapıştırın. Bitti!


4

SQL Server Management Studio'da (SSMS) açacağınız gelecekteki tüm sorgu oturumları için bu seçeneği kalıcı olarak ayarlamak istiyorsanız, @ Diego'nun kabul edilen cevabında değiştirmeniz tavsiye edilen ayarlar iyi olabilir. Bu genellikle böyle değildir . Ayrıca, bu ayarın değiştirilmesi için SQL Server Management Studio (SSMS) uygulamasının yeniden başlatılması gerekir. Birçok kaydedilmemiş açık sorgu oturumu pencereniz varsa ve bazı hata ayıklamanın ortasındaysanız, bu yine 'çok hoş olmayan' bir deneyimdir.

SQL Server, oturum başına çok hızlı, kullanışlı ve kullanışlı bir şekilde değiştirmek için çok şık bir seçenek sunar . Sorgu seçenekleri penceresini kullanarak aşağıdaki adımları detaylandırıyorum:

  1. Sorgu düzenleyici penceresine sağ tıklayın> Query Options...İçerik menüsünün altında, aşağıda gösterildiği gibi tıklayın:

resim açıklamasını buraya girin

  1. Seç Results> GridSol gezinti bölmesinde. Kontrol Include column headers when copying or saving the resultsaşağıda gösterildiği gibi sağ bölmede onay kutusunu:

resim açıklamasını buraya girin

Bu kadar. Geçerli oturumunuz, SSMS'yi yeniden başlatmadan ayarlarınızı anında geçerli olacak. Ayrıca, bu ayar gelecekteki herhangi bir oturuma yayılmaz. Bu ayarı oturum başına etkin bir şekilde değiştirmek çok daha az gürültülüdür.


2

Sonuçları dışa aktarırken SSMS'nin CSV ayırıcılarından düzgün bir şekilde kaçmasını sağlamanın bir yolunu ararken buraya gelin.

Bil bakalım ne oldu? - bu aslında bir seçenektir ve varsayılan olarak işaretlenmemiştir . Bu nedenle, varsayılan olarak, bozuk CSV dosyaları alırsınız (ve bunun farkına bile varmayabilirsiniz, özellikle dışa aktarmanız büyükse ve verilerinizde normalde virgül yoksa) - ve CSV'lerinizin dışa aktarılması için bir onay kutusunu tıklamanız gerekir. doğru şekilde!

Bana göre bu, anıtsal bir aptal tasarım seçeneği ve Microsoft'un genel olarak yazılıma yaklaşımı için uygun bir metafor gibi görünüyor ("varsayılan olarak kırılmış, önemsiz işlevselliğin çalışması için anlamsız ritüel eylemler gerektirir").

Ama eğer birisi bana bu seçeneğin var olması için geçerli bir gerçek yaşam nedeni verebilirse (yani, yararlı olduğu gerçek bir senaryo), katılımcıların seçtiği bir hayır kurumuna 100 dolar bağışta bulunacağım.


2

SQL Server 2014 Management Studio'da ayar şuradadır:

Araçlar> Seçenekler> Sonuçları Sorgula> SQL Server> Metne Sonuçlar> Sonuç kümesine sütun başlıklarını dahil et.


0

Ben de aynı sorunla karşı karşıyayım. Ben sorgu penceresinde sağ tıklayın ve Sorgu Seçenekleri'ni seçin. Ancak çıkış CSV dosyasında başlık satırları görünmüyor.

Sonra sunucuyu kapatıyorum, tekrar giriş yapıyorum ve betiği çalıştırıyorum. Sonra işe yaradı.


Include column headers when copying or saving the resultsSeçeneği değiştirmeyi denedin mi? Bu seçenek, pencerenin sol gezinme bölmesinde Results> seçeneğini belirlediğinizde görünür . GridQuery Options
RBT
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.