การนำเข้าและส่งออกข้อมูล SQL Server จากบรรทัดคำสั่งด้วย BCP

Bcp เป็นวิธีที่เร็วที่สุดในการรับข้อมูลลงในฐานข้อมูล

คำสั่งสำเนาจำนวนมาก (bcp) ของ Microsoft SQL Server ช่วยให้คุณสามารถแทรกข้อมูลจำนวนมากได้โดยตรงจากบรรทัดคำสั่ง นอกเหนือจากการเป็นเครื่องมือที่มีประโยชน์สำหรับผู้ที่สนใจในบรรทัดคำสั่งโปรแกรมอรรถประโยชน์ bcp เป็นเครื่องมือที่มีประสิทธิภาพสำหรับผู้ที่ต้องการแทรกข้อมูลลงในฐานข้อมูล SQL Server จากไฟล์แบทช์หรือวิธีการเชิงโปรแกรมอื่น ๆ มีหลายวิธีในการรับข้อมูลลงในฐานข้อมูล แต่ bcp จะเร็วที่สุดเมื่อตั้งค่าพารามิเตอร์ที่ถูกต้อง

ไวยากรณ์ bcp

ไวยากรณ์พื้นฐานสำหรับการใช้ bcp คือ:

BCP

ซึ่งอาร์กิวเมนต์ใช้ค่าต่อไปนี้:

ตัวอย่างการนำเข้า bcp

เพื่อนำมารวมกันลองจินตนาการว่าคุณมีตารางผลไม้อยู่ใน ฐานข้อมูลสินค้าคงคลัง ของคุณและต้องการนำเข้าบันทึกทั้งหมดจากไฟล์ข้อความที่เก็บไว้ในฮาร์ดดิสก์ของคุณลงในฐานข้อมูลนั้น คุณจะใช้ไวยากรณ์คำสั่ง bcp ต่อไปนี้:

bcp inventory.dbo.fruits ใน "C: \ fruits \ inventory.txt" -c -T

นี้ผลิตออกต่อไปนี้:

C: \> bcp inventory.dbo.fruits ใน "C: \ fruits \ inventory.txt" -c -T สำเนาเริ่มต้น ... คัดลอกแล้ว 36 แถว ขนาดแพ็กเก็ตเครือข่าย (ไบต์): 4096 เวลานาฬิกา (มิลลิวินาที) ทั้งหมด: 16 เฉลี่ย: (2250.00 แถวต่อวินาที) C: \>

คุณอาจสังเกตสองตัวเลือกใหม่ในบรรทัดคำสั่งนั้น ตัวเลือก -c ระบุว่ารูปแบบไฟล์ของไฟล์นำเข้าจะเป็นข้อความคั่นด้วยแท็บกับแต่ละระเบียนในบรรทัดใหม่ ตัวเลือก -T ระบุว่า bcp ควรใช้การพิสูจน์ตัวจริงของ Windows เพื่อเชื่อมต่อกับฐานข้อมูล

ตัวอย่างการส่งออก bcp

คุณสามารถส่งออกข้อมูลจากฐานข้อมูลของคุณด้วย bcp โดยเปลี่ยนทิศทางของการดำเนินการจาก "in" เป็น "out" ตัวอย่างเช่นคุณสามารถถ่ายโอนข้อมูลของตารางผลไม้ไปยังแฟ้มข้อความโดยใช้คำสั่งต่อไปนี้:

bcp inventory.dbo.fruits ออก "C: \ fruits \ inventory.txt" -c -T

ต่อไปนี้คือลักษณะที่ปรากฏในบรรทัดคำสั่ง:

C: \> bcp inventory.dbo.fruits ออก "C: \ fruits \ inventory.txt" -c -T คัดลอกเริ่มต้น ... คัดลอกแล้ว 42 แถว ขนาดแพ็คเก็ตเครือข่าย (ไบต์): 4096 เวลานาฬิกา (มิลลิวินาที) ทั้งหมด: 1 เฉลี่ย: (42000.00 แถวต่อวินาที) C: \>

นั่นคือทั้งหมดที่มีอยู่ในคำสั่ง bcp คุณสามารถใช้คำสั่งนี้จากภายในไฟล์ batch หรือโปรแกรมอื่น ๆ ที่มีการเข้าถึงบรรทัดคำสั่ง DOS เพื่อทำให้การนำเข้าและส่งออกข้อมูลจากฐานข้อมูล SQL Server ของคุณทำงานอัตโนมัติ