Warum behandelt SQL meine "after" Trigger als statt

Ich habe den folgenden Auslöser:

Alter trigger [dbo].[EmployeeLearningNeedsDeleteAuditTrigger] on [dbo].[EmployeeLearningNeeds] after delete ... 

Aus irgendeinem Grund spricht SQL Management Studio dies als einen Fehler an und gibt an:

Kann nicht erstellen INSTEAD OF DELETE Trigger [dbo]. [EmployeeLearningNeedsDeleteAuditTrigger] auf [dbo] [EmployeeLearningNeeds]. Dies ist, weil die Tabelle hat eine AUSLÄNDISCHE SCHLÜSSEL mit Cascading Delete.

Was ich nicht verstehe, ist das nicht ein "anstatt zu löschen" das ist ein 'nach dem Löschen' also warum ist es, dass ein solcher Fehler zu casting?

Nur für den Fall, dass es relevant ist, habe ich den Inhalt des Triggers enthalten:

 as DECLARE @Count int; select @Count = @@ROWCOUNT; set nocount on; if @Count > 0 begin declare @RowId int; declare @Value varchar(max); select @RowId=RecordId from deleted; select @Value=CONVERT(varchar, (select RecordId from deleted)); exec wnf_InsertAuditRecord 'D', @RowId, 'EmployeeLearningNeeds', 'RecordId', @Value, ''; select @Value=RTRIM(surname)+', '+RTRIM(forename1)+' '+RTRIM(forename2) from employee where emp_no=(select EmployeeId from deleted); exec wnf_InsertAuditRecord 'D', @RowId, 'EmployeeLearningNeeds', 'EmployeeName', @Value, ''; select @Value=CONVERT(varchar, (select TrainingEventId from deleted)); exec wnf_InsertAuditRecord 'D', @RowId, 'EmployeeLearningNeeds', 'TrainingEventId', @Value, ''; select @Value=[Description] from TrainingEventPart where RecordId=(select TrainingEventPartId from deleted); exec wnf_InsertAuditRecord 'D', @RowId, 'EmployeeLearningNeeds', 'TrainingEventPart', @Value, ''; select @Value=NeedDescription from deleted; exec wnf_InsertAuditRecord 'D', @RowId, 'EmployeeLearningNeeds', 'NeedDescription', @Value, ''; select @Value=CONVERT(varchar, (select TargetDate from deleted), 103); exec wnf_InsertAuditRecord 'D', @RowId, 'EmployeeLearningNeeds', 'TargetDate', @Value, ''; select @Value=CONVERT(varchar, (select DateAchieved from deleted), 103); exec wnf_InsertAuditRecord 'D', @RowId, 'EmployeeLearningNeeds', 'DateAchieved', @Value, ''; select @Value=[Description] from LearningNeedPriority where Code=(select [Priority] from deleted); exec wnf_InsertAuditRecord 'D', @RowId, 'EmployeeLearningNeeds', 'Priority', @Value, ''; select @Value=CONVERT(varchar, (select RenewableAfter from deleted)); exec wnf_InsertAuditRecord 'D', @RowId, 'EmployeeLearningNeeds', 'RenewableAfter', @Value, ''; if (select Renewed from deleted)=1 select @Value='Yes'; else select @Value='No'; exec wnf_InsertAuditRecord 'D', @RowId, 'EmployeeLearningNeeds', 'Renewed', @Value, ''; if (select SelfNominated from deleted)=1 select @Value='Yes'; else select @Value='No'; exec wnf_InsertAuditRecord 'D', @RowId, 'EmployeeLearningNeeds', 'SelfNominated', @Value, ''; select @Value=CONVERT(varchar, (select DateNominated from deleted), 103); exec wnf_InsertAuditRecord 'D', @RowId, 'EmployeeLearningNeeds', 'DateNominated', @Value, ''; if (select Approved from deleted)=1 select @Value='Yes'; else select @Value='No'; exec wnf_InsertAuditRecord 'D', @RowId, 'EmployeeLearningNeeds', 'Approved', @Value, ''; select @Value=ApprovedBy from deleted; exec wnf_InsertAuditRecord 'D', @RowId, 'EmployeeLearningNeeds', 'ApprovedBy', @Value, ''; select @Value=ActionBy from deleted; exec wnf_InsertAuditRecord 'D', @RowId, 'EmployeeLearningNeeds', 'ActionBy', @Value, ''; select @Value=CONVERT(varchar, (select EstimatedCost from deleted)); exec wnf_InsertAuditRecord 'D', @RowId, 'EmployeeLearningNeeds', 'EstimatedCost', @Value, ''; select @Value=Comment1 from deleted; exec wnf_InsertAuditRecord 'D', @RowId, 'EmployeeLearningNeeds', 'Comment1', @Value, ''; select @Value=Comment2 from deleted; exec wnf_InsertAuditRecord 'D', @RowId, 'EmployeeLearningNeeds', 'Comment2', @Value, ''; select @Value=Notes from deleted; exec wnf_InsertAuditRecord 'D', @RowId, 'EmployeeLearningNeeds', 'Notes', @Value, ''; end 

Danke vielmals,

Wie Aaron in einem Kommentar sagte, war das nur ein roter Hering in der Intellisense.