ฉันรู้ว่านี่ไม่ใช่คำตอบที่ถูกต้องสำหรับคำถามข้างต้น แต่สำหรับฉันมันเป็นฝันร้ายเมื่อฉันพยายามคัดลอกข้อมูลจากฐานข้อมูลหนึ่งซึ่งอยู่ที่เซิร์ฟเวอร์แยกไปยังเครื่องของฉัน
ฉันพยายามทำเช่นนั้นโดยการส่งออกข้อมูลจากเซิร์ฟเวอร์ไปยังCSV/txt
ก่อนแล้วจึงนำเข้าข้อมูลในตารางท้องถิ่นของฉัน
โซลูชันทั้งสอง: เมื่อมีการจดคำถามเพื่อนำเข้าCSV
หรือใช้ตัวช่วยสร้างการนำเข้าข้อมูล SSMS มักจะเกิดข้อผิดพลาด (ข้อผิดพลาดเป็นเรื่องทั่วไปมากโดยบอกว่ามีปัญหาในการแยกวิเคราะห์) และถึงแม้ว่าฉันไม่ได้ทำอะไรเป็นพิเศษแค่ส่งออกไปยังCSV
แล้วก็พยายามที่จะนำเข้า CSV
สู่ท้องถิ่นDB
ข้อผิดพลาดอยู่ที่นั่นเสมอ
ฉันพยายามที่จะดูที่ส่วนการทำแผนที่และตัวอย่างข้อมูล แต่ก็มีปัญหาใหญ่อยู่เสมอ และฉันรู้ว่าปัญหาหลักคือมาจากหนึ่งในtable
คอลัมน์ที่มีJSON
และSQL
parser รักษาที่ผิด
ในที่สุดฉันก็คิดวิธีแก้ปัญหาที่แตกต่างออกไปและต้องการแบ่งปันในกรณีที่คนอื่นจะมีปัญหาคล้ายกัน
สิ่งที่ฉันทำคือฉันใช้ตัวช่วยสร้างการส่งออกบนเซิร์ฟเวอร์ภายนอก
นี่คือขั้นตอนในการทำซ้ำกระบวนการเดียวกัน:
1) คลิกขวาที่ฐานข้อมูลและเลือกTasks -> Export Data...
2) เมื่อตัวช่วยสร้างจะเปิดขึ้นให้เลือกถัดไปและแทนที่ "แหล่งข้อมูล:" เลือก "ไคลเอนต์ Native ของเซิร์ฟเวอร์ SQL"
ในกรณีของเซิร์ฟเวอร์ภายนอกคุณจะต้องเลือก "ใช้การพิสูจน์ตัวจริงของเซิร์ฟเวอร์ SQL" สำหรับ "โหมดการรับรองความถูกต้อง:"
3) หลังจากกดปุ่มถัดไปคุณจะต้องเลือกDestionation
หากต้องการเลือกอีกครั้ง "SQL Native Native Client"
เวลานี้คุณสามารถให้ท้องถิ่นของคุณ (หรือภายนอกอื่น ๆDB
)DB
)
4) หลังจากกดปุ่มถัดไปคุณมีสองตัวเลือกในการคัดลอกตารางทั้งหมดจากหนึ่งDB
ไปยังอีกหรือเขียนแบบสอบถามเพื่อระบุข้อมูลที่แน่นอนที่จะคัดลอก ในกรณีของฉันฉันไม่ต้องการทั้งตาราง (มันใหญ่เกินไป) แต่มีบางส่วนดังนั้นฉันเลือก "เขียนแบบสอบถามเพื่อระบุข้อมูลที่จะถ่ายโอน"
ฉันขอแนะนำให้เขียนและทดสอบแบบสอบถามในเครื่องมือแก้ไขแบบสอบถามแยกต่างหากก่อนที่จะย้ายไปยังตัวช่วยสร้าง
5) และสุดท้ายคุณต้องระบุตารางปลายทางที่จะทำการเลือกข้อมูล
ฉันแนะนำให้ปล่อยไว้เป็นชื่อที่[dbo].[Query]
กำหนดเองหรือTable
ในกรณีที่คุณมีข้อผิดพลาดในการส่งออกข้อมูลหรือหากคุณไม่แน่ใจเกี่ยวกับข้อมูลและต้องการวิเคราะห์เพิ่มเติมก่อนที่จะย้ายไปยังตารางที่แน่นอนที่คุณต้องการ
และตอนนี้ตรงไปที่ส่วนท้ายของตัวช่วยสร้างโดยการกดปุ่มถัดไป / เสร็จสิ้นปุ่ม
BULK NSERT
หรือไม่มีสิทธิ์ใช้งาน)