1
รวมส่วนย่อยของตารางเป้าหมาย
ฉันกำลังพยายามใช้MERGEคำสั่งเพื่อแทรกหรือลบแถวออกจากตาราง แต่ฉันต้องการดำเนินการกับชุดย่อยของแถวเหล่านั้นเท่านั้น เอกสารสำหรับMERGEคำเตือนที่มีคำพูดค่อนข้างแรง: สิ่งสำคัญคือต้องระบุเฉพาะคอลัมน์จากตารางเป้าหมายที่ใช้สำหรับจุดประสงค์ที่ตรงกัน นั่นคือระบุคอลัมน์จากตารางเป้าหมายที่เปรียบเทียบกับคอลัมน์ที่เกี่ยวข้องของตารางต้นฉบับ อย่าพยายามปรับปรุงประสิทธิภาพการสืบค้นด้วยการกรองแถวในตารางเป้าหมายในส่วนคำสั่ง ON เช่นโดยระบุ AND NOT target_table.column_x = value การทำเช่นนั้นอาจส่งคืนผลลัพธ์ที่ไม่คาดคิดและไม่ถูกต้อง แต่นี่คือสิ่งที่ฉันต้องทำเพื่อให้MERGEงานของฉันปรากฏ ข้อมูลที่ฉันมีคือตารางการเข้าร่วมหลายต่อหลายมาตรฐานสำหรับหมวดหมู่ (เช่นรายการที่รวมอยู่ในหมวดหมู่ใด) ดังนี้: CategoryId ItemId ========== ====== 1 1 1 2 1 3 2 1 2 3 3 5 3 6 4 5 สิ่งที่ฉันต้องทำคือการแทนที่แถวทั้งหมดในหมวดหมู่เฉพาะด้วยรายการใหม่ ความพยายามครั้งแรกของฉันในการทำเช่นนี้ดูเหมือนว่า: MERGE INTO CategoryItem AS TARGET USING ( SELECT ItemId FROM …
71
sql-server
t-sql
merge