คัดลอกข้อมูลขนาดใหญ่จากผลการสืบค้น sql


9

ใน sql server 2008 ของฉันหลังจากเรียกใช้คิวรีการส่งคืนข้อมูลมีขนาดใหญ่มากเป็นล้าน ฉันพยายามคัดลอก แต่ให้ข้อผิดพลาดหน่วยความจำ sql คุณช่วยบอกให้เรารู้ว่าฉันจะคัดลอกข้อมูลทั้งหมดและวางลงใน excel ได้อย่างไร

ฉันไม่ต้องการส่งออกไปยังไฟล์ txt เนื่องจากข้อมูลไม่ได้รับการจัดตำแหน่ง ดังนั้นฉันต้องการคัดลอกและวางลงใน excel ด้วยตนเอง กรุณาแจ้งให้เราทราบวิธีแก้ปัญหาสำหรับเขา


ในฐานะที่เป็นคำชี้แจง: คุณอาจได้รับข้อยกเว้น "หน่วยความจำไม่พอ" เมื่อ SSMS พยายามจัดการข้อมูลที่เข้ามา หากมีมากกว่าในหน่วยความจำคุณจะได้รับข้อผิดพลาดนั้น หากไม่ได้ทำให้เกิดข้อผิดพลาดหน่วยความจำไม่เพียงพอ แต่เกิดขึ้นเมื่อคุณพยายามคัดลอกและวางข้อมูลแสดงว่าปัญหาอยู่ที่การคัดลอกข้อมูลไปยังหน่วยความจำเป็นครั้งที่สองสำหรับการคัดลอกและวาง คำตอบใด ๆ ที่เกี่ยวข้องกับการหลีกเลี่ยงการส่งคืนข้อมูลไปยัง SMSS (เช่นคำตอบที่ยอมรับในปัจจุบัน ) หลีกเลี่ยงปัญหานี้
RDFozz

คำตอบ:


17

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

บันทึกผลลัพธ์เป็น

ตัวเลือกถัดไปของคุณ (และอาจดีที่สุด) คือการใช้ตัวช่วยสร้างการส่งออก คลิกขวาที่ชื่อฐานข้อมูลของคุณแล้วเลือกงานจากนั้นคลิกตัวช่วยสร้างการส่งออก

ตัวช่วยสร้างอยู่ที่ไหน

แหล่งที่มาของคุณจะเป็นฐานข้อมูลที่คุณคลิกขวา

แหล่ง

เลือกปลายทาง excel

ปลายทาง

เลือกการเขียนแบบสอบถามเพื่อระบุข้อมูลที่จะถ่ายโอน

เลือกแบบสอบถาม

วางในแบบสอบถามของคุณ

วางในแบบสอบถามของคุณ

คุณสามารถเปลี่ยนชื่อชีตได้ในสเปรดชีตของคุณที่นี่

เลือกตารางต้นฉบับ

ถัดไปคือรายการการแมปเพื่อให้คุณตรวจสอบ

รายการการแมป

และจากที่นี่คุณสามารถเรียกใช้แพคเกจได้ทันทีหรือบันทึกแพคเกจ SSIS เพื่อใช้งาน / แก้ไขในภายหลัง หากการส่งออกของคุณไม่ทำงานในครั้งแรกและคุณคุ้นเคยกับ SSIS ฉันจะบันทึกแพ็กเกจเพื่อให้คุณสามารถเข้าไปแก้ไขและแก้ไขนอกวิซาร์ดได้

บันทึกและเรียกใช้ตัวเลือก

จากนั้นเพียงกดปุ่มเสร็จสิ้นและจบอีกครั้ง


2

หากคุณยืนยันใน Excel เป็นปลายทางนั้นมีสองตัวเลือกง่าย ๆ

อันดับแรกดั้งเดิม "sqlcmd.exe" หรือ "bcp.exe" ช่วยให้คุณสามารถเรียกใช้แบบสอบถามและจะส่งออกไปยังไฟล์โดยอัตโนมัติ ถ้าข้อมูลของคุณไม่มีแท็บเอาต์พุตที่คั่นด้วยแท็บจะป้อนเข้าในคอลัมน์ Excel โดยอัตโนมัติ หากข้อมูลของคุณมีแท็บคุณจะต้องเลือกตัวคั่นอื่นและมีคอลัมน์เลือก Excel โดยยึดตามข้อมูลนั้นในระหว่างการนำเข้า

ขั้นที่สองให้วางแบบสอบถามลงในรายงาน SSRS (บริการรายงานเซิร์ฟเวอร์ SQL) เรียกใช้คลิกลูกศรทางด้านขวาของไอคอนฟลอปปี้ดิสก์ / บันทึกและส่งออกไปยัง Excel แถวนับล้านต้องใช้ SSRS 2012 ซึ่งบันทึกเป็น. xlsx แต่น่าเสียดายที่แม้ SSRS 2008 R2 จะไม่อนุญาตให้มีแถวมากกว่า 64k หากต้องการทำให้กำหนดเวลารายงานโดยอัตโนมัติ

การอ้างอิงสำหรับคำสั่งเหล่านี้:

รายการ technet sqlcmd

บันทึกรายการ bcp

แท็บ social.msdn sqlcmd คั่นฟอรัม


0

ถ้ามันเป็นเพียงครั้งเดียว

เรียกใช้แบบสอบถาม ในหน้าต่างผลลัพธ์ที่ด้านล่างขวาคลิกที่ Empty Square ที่มุมบนซ้าย บันทึกผลลัพธ์เป็น ... ค่าเริ่มต้นคือ CSV เลือกทุกที่ที่คุณต้องการถ่ายโอนไฟล์ (แชร์เครือข่ายหรือท้องถิ่น)

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.