Вы смотрели на предложение OUTPUT ?
По сути, вы выводите все, что было вставлено (включая поля идентификаторов) в переменную таблицы или временную таблицу.Вы не можете вставить его непосредственно в другую таблицу, если другая таблица имеет отношение внешнего ключа.Всякий раз, когда я использовал его, я использовал временную таблицу, а затем вставлял ее в дочернюю таблицу.
Вот пример ее использования:
DECLARE @roles TABLE (
SecurityRoleId int
)
INSERT dbo.SecurityRole (
SecurityRoleName,
SecurityRoleDescription,
LastUpdatedGuid
)
OUTPUT
INSERTED.SecurityRoleId
INTO @roles
SELECT
SecurityRoleName,
SecurityRoleDescription,
NEWID()
FROM @SecurityRole
INSERT INTO dbo.SecurityRoleDtl (
SecurityRoleId,
MemberSecurityRoleId
)
SELECT
1,
SecurityRoleId
FROM @roles