บันทึกผลลัพธ์ด้วยส่วนหัวใน Sql Server Management Studio


183

ฉันใช้ Studio จัดการเซิร์ฟเวอร์ SQL

ฉันต้องการบันทึกผลลัพธ์ของแบบสอบถามลงในไฟล์ excel

ฉันเลือก "บันทึกเป็น" จากนั้นบันทึกลงในไฟล์ CSV ซึ่งฉันสามารถเปิดใน excel ทั้งหมดดียกเว้นฉันไม่มีส่วนหัวคอลัมน์ความคิดใด ๆ ที่ฉันจะส่งออกได้อย่างไร

คำตอบ:


274

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

คุณอาจต้องปิดและเปิด SSMS อีกครั้งหลังจากเปลี่ยนตัวเลือกนี้

ใน SQL Editor Toolbar คุณสามารถเลือกบันทึกเป็นไฟล์ได้โดยไม่ต้องรีสตาร์ท SSMS


35
+1 ทดสอบสิ่งนี้และใช้งานได้: เครื่องมือ -> ตัวเลือก -> ผลลัพธ์ของแบบสอบถาม -> SQL Server -> ผลลัพธ์ไปที่ตารางจากนั้นทำเครื่องหมายที่ 'รวมส่วนหัวคอลัมน์เมื่อคัดลอกหรือบันทึกผลลัพธ์'
Jeff Ogata

46
ใช้งานได้กับ SSMS 2012 - คุณต้องรีสตาร์ท SSMSเพื่อให้การตั้งค่ามีผล
SliverNinja - MSFT

17
เพื่อยืนยันคุณจะต้องปิดและเปิด SSMS อีกครั้งเพื่อให้ตัวเลือกนี้ใช้งานได้
Christopher King

8
เช่นเดียวกับ Christopher กล่าวว่าคุณต้องเริ่มต้น SSMS ใหม่เพื่อให้การเปลี่ยนแปลงทำงานได้
Rob

8
สำหรับ SSMS 2016 คุณยังต้องรีสตาร์ทเพื่อให้การเปลี่ยนแปลงเหล่านี้มีผล
Chris Haas

36

ลองตัวช่วยสร้างการส่งออก ในตัวอย่างนี้ฉันเลือกทั้งตาราง แต่คุณสามารถระบุแบบสอบถามได้อย่างง่ายดาย:

ป้อนคำอธิบายรูปภาพที่นี่

ป้อนคำอธิบายรูปภาพที่นี่

ป้อนคำอธิบายรูปภาพที่นี่

ป้อนคำอธิบายรูปภาพที่นี่

(คุณสามารถระบุแบบสอบถามได้ที่นี่)

ป้อนคำอธิบายรูปภาพที่นี่

ป้อนคำอธิบายรูปภาพที่นี่

ป้อนคำอธิบายรูปภาพที่นี่

ป้อนคำอธิบายรูปภาพที่นี่

ป้อนคำอธิบายรูปภาพที่นี่


4
ขอบคุณสำหรับสิ่งนั้น แต่นี่สำหรับตาราง คำถามของฉันมีไว้สำหรับแบบสอบถาม
dublintech

1
คุณสามารถระบุแบบสอบถามในขั้นตอนที่สี่ - "ระบุตารางคัดลอกหรือแบบสอบถาม"
John Dewey

ฉันลองวิธีอื่นทั้งหมดแล้วและนี่เป็นวิธีเดียวที่ใช้ได้กับประเภทข้อมูลผสมของฉัน
DOK

3
ในขณะที่งานนี้มันเจ็บปวดและเสียเวลามาก SQL Server และ Excel เป็นทั้งผลิตภัณฑ์ MS มันน่าทึ่งที่ไม่มีปุ่มส่งออกอย่างง่ายในปี 2556!
Andre

34

ความเป็นไปได้อีกอย่างหนึ่งคือการใช้คลิปบอร์ดเพื่อคัดลอกและวางผลลัพธ์ลงใน Excel โดยตรง เพียงระวังคอลัมน์ Excel ประเภททั่วไปเนื่องจากบางครั้งอาจมีผลลัพธ์ที่ไม่แน่นอนขึ้นอยู่กับข้อมูลของคุณ CTL-Aที่ใดก็ได้ในตารางผลลัพธ์แล้วคลิกขวา:

ป้อนคำอธิบายรูปภาพที่นี่

หากคุณมีปัญหากับรูปแบบทั่วไปของ Excel ที่ทำการแปลงที่ไม่ต้องการให้เลือกคอลัมน์ว่างใน Excel ก่อนที่คุณจะวางและเปลี่ยนรูปแบบเป็น "ข้อความ"


สิ่งนี้ยอดเยี่ยมยกเว้นการจัดรูปแบบ Excel ตัวเลขที่มีเลขศูนย์นำหน้า (เช่นหมายเลขโทรศัพท์มือถือ) ให้วางเลขศูนย์ใน Excel มีปัญหาการจัดรูปแบบอื่น ๆ รออยู่เช่นกันใช้ในอันตรายของคุณเอง ขอบคุณ Microsoft!
e_i_pi

12

อย่างน้อยใน SQL Server 2012 คุณสามารถคลิกขวาในหน้าต่างแบบสอบถามและเลือกตัวเลือกแบบสอบถาม จากตรงนั้นคุณสามารถเลือกรวมส่วนหัวสำหรับกริดและ / หรือข้อความและให้บันทึกเป็นทำงานตามที่คุณต้องการโดยไม่ต้องเริ่ม SSMS ใหม่

คุณจะต้องเปลี่ยนในเครื่องมือ -> ตัวเลือกในแถบเมนูเพื่อให้หน้าต่างแบบสอบถามใหม่ใช้การตั้งค่าเหล่านั้นตามค่าเริ่มต้น


7

มีปัญหาเดียวกันใน Visual Studio ต่อไปนี้เป็นวิธีแก้ไข:

ไปที่:

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

ตอนนี้คลิกกล่องกาเครื่องหมายเพื่อจริง: "รวมส่วนหัวของคอลัมน์เมื่อคัดลอกหรือบันทึกผลลัพธ์"


6

เลือกผลลัพธ์ของคุณโดยคลิกที่มุมบนซ้ายคลิกขวาแล้วเลือก "คัดลอกด้วยส่วนหัว" วางใน excel ทำ!


4

การตั้งค่าที่ได้รับคำแนะนำให้เปลี่ยนในคำตอบที่ยอมรับของ @ Diego อาจดีถ้าคุณต้องการตั้งค่าตัวเลือกนี้อย่างถาวรสำหรับเซสชันการสืบค้นในอนาคตทั้งหมดที่คุณเปิดภายใน SQL Server Management Studio (SSMS) นี่ไม่ใช่กรณีปกติ นอกจากนี้การเปลี่ยนการตั้งค่านี้ต้องเริ่มต้นแอปพลิเคชัน SQL Server Management Studio (SSMS) อีกครั้ง นี่เป็นประสบการณ์ที่ "ไม่ดี" อีกครั้งหากคุณมีหน้าต่างเซสชันการสืบค้นแบบเปิดที่ยังไม่ได้บันทึกจำนวนมากและคุณกำลังอยู่ในระหว่างการดีบัก

SQL Server ให้เป็นตัวเลือกที่เนียนมากของการเปลี่ยนแปลงบนพื้นฐานต่อเซสชั่นซึ่งเป็นมากอย่างรวดเร็วที่มีประโยชน์และความสะดวกสบาย ฉันให้รายละเอียดขั้นตอนด้านล่างโดยใช้หน้าต่างตัวเลือกข้อความค้นหา:

  1. คลิกขวาในหน้าต่างตัวแก้ไขคิวรี> คลิกQuery Options...ที่ด้านล่างของเมนูบริบทที่แสดงด้านล่าง:

ป้อนคำอธิบายรูปภาพที่นี่

  1. เลือกResults> Gridในบานหน้าต่างนำทางซ้าย ทำInclude column headers when copying or saving the resultsเครื่องหมายที่ช่องทำเครื่องหมายในบานหน้าต่างด้านขวาตามที่แสดงด้านล่าง:

ป้อนคำอธิบายรูปภาพที่นี่

แค่นั้นแหละ. เซสชั่นปัจจุบันของคุณจะเคารพการตั้งค่าของคุณด้วยผลทันทีโดยไม่ต้องรีสตาร์ท SSMS นอกจากนี้การตั้งค่านี้จะไม่ถูกเผยแพร่ในเซสชันใด ๆ ในอนาคต การเปลี่ยนการตั้งค่านี้อย่างมีประสิทธิภาพในแต่ละครั้งจะมีเสียงดังน้อยกว่ามาก


2

มาที่นี่เมื่อมองหาวิธีที่จะทำให้ SSMS หลุดพ้นตัวแยก CSV อย่างถูกต้องเมื่อส่งออกผลลัพธ์

คาดเดาอะไร - นี้เป็นจริงตัวเลือกและมันก็ไม่ถูกตรวจสอบโดยค่าเริ่มต้น โดยค่าเริ่มต้นคุณจะได้รับไฟล์ CSV ที่เสียหาย (และอาจไม่รู้ด้วยซ้ำว่า esp. ถ้าการส่งออกของคุณมีขนาดใหญ่และข้อมูลของคุณไม่มีคอมม่าปกติ) - และคุณต้องเข้าไปข้างในแล้วคลิกช่องทำเครื่องหมายเพื่อให้ CSV ของคุณส่งออก ได้อย่างถูกต้อง!

สำหรับฉันดูเหมือนว่าจะเป็นตัวเลือกการออกแบบที่โง่เง่าและคำอุปมาที่เหมาะสมสำหรับวิธีการของ Microsoft ต่อซอฟต์แวร์โดยทั่วไป ("แตกหักโดยค่าเริ่มต้นต้องมีการดำเนินการทางพิธีกรรมที่ไม่มีความหมายเพื่อทำให้การทำงานเล็กน้อย")

แต่ฉันยินดีที่จะบริจาค $ 100 เพื่อการกุศลของทางเลือกของผู้ตอบหากใครบางคนสามารถให้เหตุผลที่ถูกต้องในชีวิตจริงแก่ฉันสำหรับตัวเลือกนี้ในการดำรงอยู่ (เช่นสถานการณ์จริงที่เป็นประโยชน์)


2

ใน SQL Server 2014 Management Studio การตั้งค่าอยู่ที่:

เครื่องมือ> ตัวเลือก> ผลลัพธ์ของแบบสอบถาม> SQL Server> ผลลัพธ์เป็นข้อความ> รวมส่วนหัวคอลัมน์ในชุดผลลัพธ์


0

ฉันยังเผชิญกับปัญหาเดียวกัน เมื่อฉันใช้คลิกขวาในหน้าต่างแบบสอบถามและเลือกตัวเลือกแบบสอบถาม แต่แถวส่วนหัวไม่ปรากฏในไฟล์ CSV เอาต์พุต

จากนั้นฉันออกจากเซิร์ฟเวอร์เข้าสู่ระบบอีกครั้งและเรียกใช้สคริปต์ จากนั้นก็ใช้งานได้


คุณลองเปลี่ยนตัวInclude column headers when copying or saving the resultsเลือกแล้วหรือยัง ตัวเลือกนี้จะมองเห็นได้เมื่อคุณเลือกResults> Gridในบานหน้าต่างนำทางซ้ายบนQuery Optionsหน้าต่าง
RBT
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.