Câu hỏi này gần với những gì tôi cần, nhưng kịch bản của tôi hơi khác. Bảng nguồn và bảng đích giống nhau và khóa chính là một định danh duy nhất (hướng dẫn). Khi tôi thử điều này:
insert into MyTable
select * from MyTable where uniqueId = @Id;
Tôi rõ ràng nhận được một vi phạm ràng buộc khóa chính, vì tôi đang cố sao chép trên khóa chính. Trên thực tế, tôi không muốn sao chép khóa chính. Thay vào đó, tôi muốn tạo một cái mới. Ngoài ra, tôi muốn sao chép có chọn lọc trên các trường nhất định và để trống các trường khác. Để làm cho vấn đề phức tạp hơn, tôi cần lấy khóa chính của bản ghi gốc và chèn nó vào một trường khác trong bản sao (trường BeforeId).
Tôi chắc chắn có một giải pháp dễ dàng cho vấn đề này, tôi chỉ không biết đủ TSQL để biết nó là gì.