Using the IDENTITY to determine which record was inserted last could be very misleading. What if some records have been deleted, and you've reset your IDENTITY start value?
For example, you could potentially have records 1 - 10000, but delete from 1000-9000, and you decide to reset your identity to start again at 1000?
Triggers, on the other hand, could work but you need to weigh the consequences carefully. This could add a lot of load to your system.
How are you inserting the records? Through an application?
I will suggest looking at adding a timestamp column (or even just a regular DATETIME column with default value GETDATE()). This can aid in determining which record was inserted last in your transaction. For example:
-- begin your transaction
-- insert statements here
SELECT id
FROM TableB
WHERE timestampcol = (SELECT MAX(timestampcol) FROM TableB)
-- run your sproc based on the last record inserted
-- commit or rollback your transaction