Problem mit automatischer ID-Inkrementierung

Diese Seite verwendet Cookies. Durch die Nutzung unserer Seite erklären Sie sich damit einverstanden, dass wir Cookies setzen. Weitere Informationen

  • Problem mit automatischer ID-Inkrementierung

    Hallo,
    ich habe folgendes Problem mit dem SQL Server 2005.
    Ich habe für eine Tabelle eingestellt, dass der Primärschlüssel automatisch um 1 inkrementiert wird, sofern ein neuer Datensatz hinzugefügt wird. Die Datensätze importiere ich per SSIS-Projekt. Zusätzlich habe ich eingestellt, dass doppelte Werte nicht in die DB geschrieben werden, da ich das SSIS-Projekt mehrfach ausführen muss. Leider wird die ID auch bei doppelten Einträgen hochgezählt.
    Beispiel:
    Die ersten Einträge haben die ID 1,2,3,4 und 5. Dann starte ich das SSIS-Projekt in dem die ersten Datensätze ebenfalls wieder vorhanden und ein neuer Eintrag. Die ersten Einträge werden zwar nicht erneut geschrieben, aber der neue Eintrag bekommt die ID 11. Kann man irgendwo einstellen, dass die ID bei doppelten Werten nicht erhöht wird, so dass ein neuer Eintrag die ID 6 bekommen würde?
    Danke
    M-l-G
  • Hi,
    ich nehme an, das schimpft sich Tranaktionssicherheit und Einfluss hast du darauf nicht.
    Den MS SQL Server kenne ich nicht... aber ich weiß wie es bei Postgres ist.
    Dort wird bei Verwendung von SERIALS schon vor jedem INSERT der nächste Wert geholt. Durch das Holen der ID ist diese ID dann reserviert und wenn das nächste mal gefragt wird, wird schon die Nächsthöhere zurückgegeben - ganz egal ob es irgendwann einen erfolgreichen INSERT gab oder nicht.

    Wenn du dem DBMS die Verwaltung der ID überlässt, dann darfst du dich da auch nicht weiter einmischen. Alternativ kannst du die Zahlen natürlich manuell in deinen SQL Code reinschreiben.