Veröffentlicht 16. November 200915 j 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.
16. November 200915 j Gibt es noch offenen Transaktionen die in die Tabelle schreiben aber noch nicht comittet haben? Was passiert, wenn Du den Datensatz den Du per SELECT ermittelst, händisch per INSERT INTO ... VALUES ... einfügst? Dim
16. November 200915 j 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
16. November 200915 j 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.
18. November 200915 j 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?
18. November 200915 j Kann es sein, dass Du in Wirklichkeit auf die falsche Tabelle gehst? Selektier die Tabelle doch mal mit ohn ohne Angabe des Owners. Dim
Archiv
Dieses Thema wurde archiviert und kann nicht mehr beantwortet werden.