• Yeah - you don't want to use IDENT_CURRENT because of multi-user problems.  I would follow the suggestions and use the @@IDENTITY or SCOPE_IDENTITY() in the first stored procedure and pass the value back through an output variable that your VB application can read.  This will allow inserting multiple child records which could not be done using a single stored procedure.

    Rollback still works fine as long as you execute the begin transaction call on your connection object from within VB before the first stored procedure call.  Commit or Rollback when all the processing is done.  ... Of course, you will want this to be as short a time as possible.

    My $0.02

    Guarddata-