menatolin Geschrieben 16. November 2009 Teilen Geschrieben 16. November 2009 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. Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
dr.dimitri Geschrieben 16. November 2009 Teilen Geschrieben 16. November 2009 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 Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
dbwizard Geschrieben 16. November 2009 Teilen Geschrieben 16. November 2009 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 Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
menatolin Geschrieben 16. November 2009 Autor Teilen Geschrieben 16. November 2009 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. Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
menatolin Geschrieben 18. November 2009 Autor Teilen Geschrieben 18. November 2009 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? Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
dr.dimitri Geschrieben 18. November 2009 Teilen Geschrieben 18. November 2009 Kann es sein, dass Du in Wirklichkeit auf die falsche Tabelle gehst? Selektier die Tabelle doch mal mit ohn ohne Angabe des Owners. Dim Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Empfohlene Beiträge
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.