Questa domanda si avvicina a ciò di cui ho bisogno, ma il mio scenario è leggermente diverso. La tabella di origine e la tabella di destinazione sono le stesse e la chiave primaria è un identificatore univoco (guid). Quando provo questo:
insert into MyTable
select * from MyTable where uniqueId = @Id;
Ovviamente ottengo una violazione del vincolo di chiave primaria, poiché sto tentando di copiare sulla chiave primaria. In realtà, non voglio affatto copiare la chiave primaria. Piuttosto, voglio crearne uno nuovo. Inoltre, vorrei copiare selettivamente su determinati campi e lasciare gli altri nulli. Per rendere le cose più complesse, devo prendere la chiave primaria del record originale e inserirla in un altro campo nella copia (campo PreviousId).
Sono sicuro che ci sia una soluzione semplice a questo, semplicemente non conosco abbastanza TSQL per sapere di cosa si tratta.