Cette question se rapproche de ce dont j'ai besoin, mais mon scénario est légèrement différent. La table source et la table de destination sont identiques et la clé primaire est un uniqueidentifier (guid). Quand j'essaye ceci:
insert into MyTable
select * from MyTable where uniqueId = @Id;
J'obtiens évidemment une violation de contrainte de clé primaire, car j'essaie de copier la clé primaire. En fait, je ne veux pas du tout copier la clé primaire. Je veux plutôt en créer un nouveau. De plus, je voudrais copier sélectivement certains champs et laisser les autres nuls. Pour rendre les choses plus complexes, je dois prendre la clé primaire de l'enregistrement d'origine et l'insérer dans un autre champ de la copie (champ PreviousId).
Je suis sûr qu'il existe une solution simple à cela, je ne connais tout simplement pas assez TSQL pour savoir ce que c'est.