Essa pergunta chega perto do que eu preciso, mas meu cenário é um pouco diferente. A tabela de origem e a tabela de destino são as mesmas e a chave primária é um identificador exclusivo (guid). Quando eu tento isso:
insert into MyTable
select * from MyTable where uniqueId = @Id;
Obviamente, recebo uma violação de restrição de chave primária, pois estou tentando copiar a chave primária. Na verdade, não quero copiar a chave primária. Em vez disso, quero criar um novo. Além disso, gostaria de copiar seletivamente sobre determinados campos e deixar os outros nulos. Para tornar as coisas mais complexas, preciso pegar a chave primária do registro original e inseri-la em outro campo da cópia (campo PreviousId).
Tenho certeza de que existe uma solução fácil para isso, simplesmente não conheço TSQL suficiente para saber o que é.