Zum Inhalt springen

Primary Key Verletzung bei leerer Tabelle


menatolin

Empfohlene Beiträge

Hallo,

folgendes Problem: Ich arbeite mit dem MS SQL Server 2008 - jetzt versuche ich per Prozedur eine Tabelle zu füllen, deren Primärschlüssel aus 5 Spalten besteht (alle ohne Autowert).

Das insert-Statement sieht vom Schema her so aus:

insert into Tabelle

select Spalte A, Spalte B, Spalte C from Tabelle2

Ich bekomme die Fehlermeldung: "Verletzung der PRIMARY KEY-Einschränkung 'PK_Name'. Ein doppelter Schlüssel kann in das 'Tabellenname'-Objekt nicht eingefügt werden." Der Clou ist, dass kein doppelter Schlüssel existiert, der da eingetragen werden soll. Ich habe sogar die Tabelle geleert, das insert-Statement mit Top(1) erweitert und die Geschichte versucht auszuführen, aber bekomme immernoch dieselbe Fehlermeldung. Kurzum ich versuche einen einzelnen Datensatz in eine leere Tabelle einzutragen und bekomme die Meldung, dass ich einen doppelten Schlüssel nicht einfügen darf.

Hat sich der MS SQL Server da etwas zickig mit PKs über mehrere Spalten oder woran kann das liegen? Bin für jede Hilfe dankbar.

Link zu diesem Kommentar
Auf anderen Seiten teilen

Hallo,

...... deren Primärschlüssel aus 5 Spalten besteht (alle ohne Autowert).

Das insert-Statement sieht vom Schema her so aus:

insert into Tabelle

select Spalte A, Spalte B, Spalte C from Tabelle2

Wenn dein PK aus 5 Attributen besteht, du aber nur 3 in deinem Insert einfügst, hast du eh schon ein Problem.

Gruss

Link zu diesem Kommentar
Auf anderen Seiten teilen

Offene Transaktionen gibt es nicht, das händische Reinschreiben per insert into values funktioniert dubioser Weise.

@dbwizard: Das war nur ein Beispiel, um zu verdeutlichen, dass ich kein "insert into ... values ..." benutze, sondern das insert mit einer Abfrage ausführe. Selbstverständlich fülle ich alle Felder.

Link zu diesem Kommentar
Auf anderen Seiten teilen

Ich habe auch mal aus der Tabelle den PK gänzlich entfernt, ich bekomme immernoch die gleiche Fehlermeldung bei Ausführung der SP.

Ich versuche also einen einzigen Datensatz in einer leeren Tabelle ohne Primärschlüssel zu speichern und die Prozedur bricht ab mit der Fehlermeldung "Verletzung der PRIMARY KEY-Einschränkung 'PK_Name'. Ein doppelter Schlüssel kann in das 'Tabellenname'-Objekt nicht eingefügt werden". Das ist doch mal was.

Hat jemand einen Gedanken, was da vor sich geht oder wie ich das Problem beheben kann?

Link zu diesem Kommentar
Auf anderen Seiten teilen

Dein Kommentar

Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.

Gast
Auf dieses Thema antworten...

×   Du hast formatierten Text eingefügt.   Formatierung wiederherstellen

  Nur 75 Emojis sind erlaubt.

×   Dein Link wurde automatisch eingebettet.   Einbetten rückgängig machen und als Link darstellen

×   Dein vorheriger Inhalt wurde wiederhergestellt.   Editor leeren

×   Du kannst Bilder nicht direkt einfügen. Lade Bilder hoch oder lade sie von einer URL.

Fachinformatiker.de, 2024 by SE Internet Services

fidelogo_small.png

Schicke uns eine Nachricht!

Fachinformatiker.de ist die größte IT-Community
rund um Ausbildung, Job, Weiterbildung für IT-Fachkräfte.

Fachinformatiker.de App

Download on the App Store
Get it on Google Play

Kontakt

Hier werben?
Oder sende eine E-Mail an

Social media u. feeds

Jobboard für Fachinformatiker und IT-Fachkräfte

×
×
  • Neu erstellen...