У меня есть ситуация, когда у меня есть заголовок и таблица сведений. Таблица сведений имеет отношение внешнего ключа к таблице заголовка с каскадным удалением.
При удалении подробных записей мне нужно обновить другие таблицы с помощью триггера. У меня проблема в том, что мне нужно извлечь некоторую информацию из таблицы заголовков, а также из таблицы сведений для удаленных записей. Если я удаляю записи сведений, а затем запись заголовка, кажется, что триггер работает нормально. Тем не менее, если я удаляю запись заголовка, которая, в свою очередь, удаляет подробные записи из-за каскадного удаления, то при выполнении триггера запись заголовка уже удалена, и я не могу получить доступ к необходимой мне информации.
Я довольно новичок в триггерах, поэтому мне интересно, есть ли что-то, чего я просто не знаю, и как мне это сделать.
Вот мой код:
ALTER TRIGGER [Detail_Delete]
ON [Detail]
AFTER DELETE
AS
BEGIN
SET NOCOUNT ON;
DECLARE @Table UpdateTableType
-- Here is where the problem lies.
-- No records are found here because the Header record isn't found.
INSERT @Table
(HeaderID, UserID)
SELECT d.HeaderID, h.UserID
FROM deleted d
JOIN Header h ON h.HeaderID = d.HeaderID
EXECUTE sp_UpdateSummary
@Table = @Table
END