Deine Lösung ist unschön wegen dem Extrafeld.
Lass doch mal in meinem Code dir Prüfung auf IsNull weg und versuche einfach den mit AsInteger zurückzugeben. Mit dem Scope_Identity() hatte ich noch nie Probleme, aber auch wohl deshalb vielleicht weil ich das so in der Form gar nicht mehr nutze.
Ich plädiere definitiv zu der Lösung mit der Sequence Tabelle und der Stored Procedure aus
#6. Damit bist du einfach viel flexibler, und du hast die nötige Id schon bevor du überhaupt den Insert losschickst. Dafür müsstest du allerdings die Identity Eigenschaft der
DB-Spalte wieder kicken.