Cette question est proche de ce dont j'ai besoin, mais mon scénario est légèrement différent. La table source et la table destination sont les mêmes et la clé primaire est un identifiant unique (guid). Lorsque j'essaie ceci :
insert into MyTable
select * from MyTable where uniqueId = @Id;
J'obtiens évidemment une violation de contrainte de clé primaire, puisque je tente de copier la clé primaire. En fait, je ne veux pas du tout copier la clé primaire. Je veux plutôt en créer une nouvelle. 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 original et l'insérer dans un autre champ de la copie (champ PreviousId).
Je suis sûr qu'il existe une solution simple à ce problème, mais je ne connais pas suffisamment le langage TSQL pour la connaître.