Хотя мне нравится ответ Дейва Маркля (и я вижу, что вы тоже это сделали, поскольку вы отметили его как свой ответ), этот метод может завершиться неудачей, если у вас есть триггеры в базе данных, которые проверяют операции CUD, и ваша таблица аудита имеет столбец IDENTITY. Он будет возвращать значение идентификатора таблицы аудита, а не таблицы, в которую вы только что вставили, поскольку таблица аудита действительно происходит после.
В этом случае можно использовать более общий метод, который будет работать в обоих случаях, независимо от какого-либо аудита. Это немного более многословно, но вы получаете то, за что платите.
пример:
@"DECLARE @tmp AS TABLE ( id int )
INSERT INTO case
(
caseID,
partID,
serialNumber,
hardware,
software,
firmware
)
OUTPUT Inserted.ID into @tmp
VALUES
(
@caseID,
@partItemID,
@serialNumber,
@hardware,
@software,
@firmware
)
Select ID from @tmp" )