SELECT IDENT_CURRENT
- как вы сказали, вы получите конкретное последнее вставленное значение идентификатора таблицы. Есть проблемы, связанные с этим: один пользователь должен иметь разрешение на просмотр метаданных, в противном случае он возвращает NULL, а второй - жесткое кодирование имени таблицы, что приведет к проблеме в случае изменения имени таблицы.
Лучше всего использовать Scope_Identity вместе с переменной ... Смотрите следующий пример
DECLARE @myFirstTableID INT
DECLARE @mySecondTableID INT
INSERT INTO MYFirstTable (....) VALUES (.....)
SELECT @myFirstTableID =SCOPE_IDENTITY()
INSERT INTO MYSecondTable () VALUES (.....)
SELECT @mySecondTableID=SCOPE_IDENTITY()
Таким образом, используя переменные и scope_identity рядом с оператором вставки, представляющим интерес, вы можете убедиться, что получаете правильную идентификацию из правильной таблицы.
Наслаждайтесь