Использование IDENTITY для определения, какая запись была вставлена последней, может быть очень обманчивым. Что, если некоторые записи были удалены, и вы сбросили начальное значение IDENTITY?
Например, вы могли бы иметь записи 1–10000, но удалить из 1000–9000, и вы решили сбросить свою личность, чтобы начать снова с 1000?
Триггеры, с другой стороны, могут работать, но вы должны тщательно взвесить последствия. Это может увеличить нагрузку на вашу систему.
Как вы вставляете записи? Через приложение?
Я предлагаю рассмотреть добавление столбца метки времени (или даже просто обычного столбца DATETIME со значением по умолчанию GETDATE ()). Это может помочь определить, какая запись была вставлена последней в вашей транзакции. Например:
-- 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