MSSQL Default-Wert als auto-inkrement



  • Hi,

    kann man den Default-Wert für eine Spalte (int) bei MSSQL so definieren, dass dafür der nächsthöhere freie Wert verwendet wird? Also wenn ich einen Wert angebe, wird der verwendet, wenn ich DEFAULT angebe, wird ein auto-inkrement angewendet...



  • heimchen schrieb:

    kann man den Default-Wert für eine Spalte (int) bei MSSQL so definieren, dass dafür der nächsthöhere freie Wert verwendet wird? Also wenn ich einen Wert angebe, wird der verwendet, wenn ich DEFAULT angebe, wird ein auto-inkrement angewendet...

    Meinst du so etwas wie eine "IDENTITY"-Spalte in Kombination mit "SET IDENTITY_INSERT <table> ON/OFF"?



  • Ja, allerdings hab ich so ein bisschen Bedenken, dass ich mir damit diverse Fehlerquellen einfang.
    Jetzt hab ich einfach einen AFTER INSERT Trigger genommen, der allen Datensätzen mit ID 1 die nächst-höhere freie ID zuweist. Neue Datensätze fürge ich dann einfach mit 1 ein, bestehende mit der entsprechenden ID. Ist nicht ganz das optimum, aber läuft...



  • heimchen schrieb:

    Ja, allerdings hab ich so ein bisschen Bedenken, dass ich mir damit diverse Fehlerquellen einfang.

    Deine Lösung scheint mir wesentlich gefährlicher.


Anmelden zum Antworten