Announcement

Collapse
No announcement yet.

Verletzung der PRIMARY KEY-Einschränkung: Doppelter Schlüssel

Collapse
X
  • Filter
  • Time
  • Show
Clear All
new posts

  • Verletzung der PRIMARY KEY-Einschränkung: Doppelter Schlüssel

    Hallo,
    ich habe hier ein merkwürdiges Problem:
    Tabelle A hat einen Trigger (Insert) auf Tabelle B
    Wenn ich versuch, einen neuen Eintrag in Tabelle A einzufügen, erhalte ich diese Fehlermeldung:

    (0 Zeile(n) betroffen)
    Meldung 2627, Ebene 14, Status 1, Prozedur tabA_B_INS, Zeile 5
    Verletzung der PRIMARY KEY-Einschränkung 'PK_tabB'. Ein doppelter Schlüssel kann in das tabB-Objekt nicht eingefügt werden.
    Die Anweisung wurde beendet.

    Dieser Eintrag existiert aber nicht in Tabelle B! Wenn ich den manuell eintrage oder per direktem Insert funktioniert es. Nur über den ausgelösten Trigger geht es nicht.
    Tabelle A und B haben keine "Identitätsspalte". Daher geht dbcc checkident nicht.
    Das ganze lief monatelang und nun tritt das Problem plötzlich auf.

    Hat jemand eine Idee?

    Danke und Gruß
    h.

  • #2
    Mache mal eine Tabelle C die genauso aufgebaut ist wie Tabelle B, dann änderst du den Trigger in Tabelle A so, dass er statt in Tabelle B in die Tabelle C schreibt und machst den Versuch mit dem fehlerauslösenden Datensatz nochmal. Und dann versucht du, die Daten aus Tabelle C in Tabelle B einzufügen ...

    bye,
    Helmut

    Comment


    • #3
      Hallo,

      bist du sicher, dass nur 1 Satz betroffen ist ? Beim SQL - Server wird der Trigger nämlich nicht pro Datensatz sondern pro Operation aufgerufen und inserted enthält manchmal mehrere Sätze.
      Ich habs gleich!
      ... sagte der Programmierer.

      Comment

      Working...
      X