Grundsätzlich habe ich eine SQL Server 2008 R2-Datenbank. Die Datenbank hat eine Tabelle namens Node and Link. Der Link enthält eine StartNodeId und eine EndNodeId, die sich auf eine ID im Knoten beziehen. Die Datenbank benötigt auch eine Link-Tabelle zwischen Knoten und Link, um z. B. zu überprüfen, ob dieser Knoten zu diesem Link gehört oder welche Knoten zu diesem Link gehören. Die Link-Tabelle enthält einen Identitätsschlüssel, NodeId und LinkId. Mein Problem ist, wenn ich meine Inserts mache, versuche ich Merge-Anweisungen zu verwenden, die nicht in der Lage zu tun, was ich versuche
Als ich es versuchte
%Vor%Ich erhalte die Fehlermeldung "Eine Aktion des Typs 'WENN GEPASST' darf nicht mehrmals in einer 'UPDATE' Klausel einer MERGE-Anweisung vorkommen"
Wenn ich versuche, Startknoten und Endknoten separat einzugeben, z. B.
%Vor%Ich lande mit Links gelöscht (nicht überraschend), also im Grunde habe ich mich gefragt, ob jemand wusste, eine gute Möglichkeit, dies zu tun? Wenn es möglich ist, möchte ich es immer noch mit einer Merge-Anweisung machen können
Danke
Bearbeiten: Ich habe eine andere Möglichkeit gefunden, diese Daten mit einer anderen Quelle zusammenzuführen, das Problem ist jetzt gelöst.
Vielleicht vermisse ich etwas, aber
Die Fehlermeldung beschwert sich, dass Sie nicht mehrere WHEN MATCHED
haben können, damit Sie
bis
%Vor% Aber der erste Zweig von CASE
wird getroffen, wenn TARGET.NodeId = Source.StartNodeId
und auch TARGET.NodeId = Source.StartNodeId
und ähnlich für den zweiten Zweig, dann scheint das nach
Tags und Links sql sql-server merge sql-server-2008 tsql