Heu, c'est une requête comme une autre, je ne vois pas bien où est la difficultée.
Soit le batch ne doit retourner que ça et donc une construction "INSERT ....; SELECT Last_insert_id()" couplé à un ExecuteScalar (ou ExcuteReader etc) suffira, sinon avec un paramètre en OUTPUT.
Le type de retour ne me choque pas plus que ça, et c'est logique vu qu'une colonne auto incrémentée peut sans problème être définie en bigint (au l'équivalent MySQL si différent).
Sous SQL Server SCOPE_IDENTITY & co retournent du numeric.