Diese Frage kommt dem nahe, was ich brauche, aber mein Szenario ist etwas anders. Die Quell- und Zieltabelle sind identisch und der Primärschlüssel ist eine eindeutige Kennung (guid). Wenn ich das versuche:
insert into MyTable
select * from MyTable where uniqueId = @Id;
Ich erhalte offensichtlich eine Verletzung der Primärschlüsseleinschränkung, da ich versuche, über den Primärschlüssel zu kopieren. Eigentlich möchte ich überhaupt nicht über den Primärschlüssel kopieren. Vielmehr möchte ich eine neue erstellen. Außerdem möchte ich bestimmte Felder selektiv kopieren und die anderen null lassen. Um die Sache komplexer zu gestalten, muss ich den Primärschlüssel des Originaldatensatzes in ein anderes Feld in der Kopie einfügen (Feld PreviousId).
Ich bin mir sicher, dass es eine einfache Lösung dafür gibt. Ich kenne einfach nicht genug TSQL, um zu wissen, was es ist.