Ik denk dat de topicstarten het ID wil hebben van het record dat hij net geinserted heeft.
Dus als user A een record insert, wil hij het ID van het record dat user A heeft geinserted.
Als er tegelijk een user B een record insert, dan wil hij dat user B het id krijgt van zijn record dat hij heeft geinserted.
Volgens mij is een select max() en ook een select @@identity geen afdoende oplossing.
Wat wel een goeie oplossing zou zijn, is om een tabel bij te houden met daarin voor iedere tabel in uw DB een record. En per tabel hou je dan bij wat het laatste geinserte id is.
Als je een record in een tabel wilt inserten, ga je vlak voor de insert de tabel met ID's locken, het hoogste ID van de betreffende tabel ophalen, dat met 1 verhogen en die waarde terug gaan saven in die tabel. Dan heb je ook onmiddellijk het gewenste ID en zullen er volgens mij geen problemen zijn als de applicatie multi-user is.
https://fgheysels.github.io/