У меня проблемы со временем ожидания вместо триггера удаления в SQL Server 2008 R2.Похоже, это происходит только тогда, когда многие (> 6 или около того) CustomFieldOption
s удалены в одной и той же транзакции.
CREATE TRIGGER dbo.[DeleteCustomFieldOptionInsteadOfTrigger] ON dbo.[CustomFieldOption] INSTEAD OF DELETE
AS
BEGIN
SET NOCOUNT ON;
UPDATE ucf SET ucf.PendingCustomFieldOptionIdValue = NULL, ucf.PendingProposedStateId = NULL
FROM UserCustomField ucf
INNER JOIN deleted d ON d.CustomFieldOptionId = ucf.PendingCustomFieldOptionIdValue
WHERE ucf.CurrentCustomFieldOptionIdValue IS NOT NULL;
SET NOCOUNT ON;
DELETE ucf FROM UserCustomField ucf
INNER JOIN deleted d ON d.CustomFieldOptionId = ucf.PendingCustomFieldOptionIdValue
WHERE ucf.CurrentCustomFieldOptionIdValue IS NULL;
SET NOCOUNT ON;
DELETE ucf FROM UserCustomField ucf
INNER JOIN deleted d ON d.CustomFieldOptionId = ucf.CurrentCustomFieldOptionIdValue;
SET NOCOUNT ON;
DELETE cfo FROM CustomFieldOption cfo
INNER JOIN deleted d ON d.CustomFieldOptionId = cfo.CustomFieldOptionId;
SET NOCOUNT OFF;
END
Я понимаю, что, вероятно, потребуется дополнительный контекст (я обновлю вопрос по мере необходимости)- Я делаю что-то явно не так?