• It sounds as if the actual generation of the Identity is not in the scope of the call to SQL Server.  For example (since I know nothing of the structure of the interface) assume a call to a stored procedure that verifies data, then makes a call to a second SP to perform the actual insert.

    @@Identity would work, as long as the insert did not trigger creation of another identity (e.g. in a logging file)

    ident_current(x) would work, since you are getting the latest identity for table X, but if someone else manages an insert between the two statements, you can get incorrect information.

    scope_identity would not work, since the identity is created in another scope (another SP, in this case).

    I agree with wanting to get away from ident_current, but it sounds as if you may actually need to use @@IDENTITY, not scope_identity.