คำถามนี้ใกล้เคียงกับสิ่งที่ฉันต้องการ แต่สถานการณ์ของฉันแตกต่างกันเล็กน้อย ตารางต้นทางและตารางปลายทางเหมือนกันและคีย์หลักคือตัวบ่งชี้เฉพาะ (guid) เมื่อฉันลองสิ่งนี้:
insert into MyTable
select * from MyTable where uniqueId = @Id;
เห็นได้ชัดว่าฉันได้รับการละเมิดข้อ จำกัด ของคีย์หลักเนื่องจากฉันพยายามคัดลอกคีย์หลัก อันที่จริงฉันไม่ต้องการคัดลอกคีย์หลักเลย แต่ฉันต้องการสร้างใหม่ นอกจากนี้ฉันต้องการคัดลอกช่องบางช่องและปล่อยให้ช่องอื่นว่าง เพื่อให้เรื่องซับซ้อนมากขึ้นฉันต้องใช้คีย์หลักของระเบียนต้นฉบับและแทรกลงในฟิลด์อื่นในสำเนา (ฟิลด์ PreviousId)
ฉันแน่ใจว่ามีวิธีแก้ปัญหาง่ายๆสำหรับเรื่องนี้ฉันไม่รู้ TSQL มากพอที่จะรู้ว่ามันคืออะไร