MSSQL – FÜR DELETE Trigger funktioniert nicht mit innerem Join

Kann jemand erklären, warum das funktioniert –

CREATE TRIGGER [dbo].[T_tskmst_D] ON [dbo].[tskmst] FOR DELETE AS BEGIN -- SET NOCOUNT ON added to prevent extra result sets from -- interfering with SELECT statements. SET NOCOUNT ON; -- Insert statements for trigger here insert into [database].[dbo].[tskmst] ( tskmst_revtm, tskmst_revtype, tskmst_id, tskmst_name, tskmst_desc, tskmst_type, owner_id, tskmst_public, tskmst_lstchgtm, nodmst_id, servicemst_id) select GETDATE(), 'D', d.tskmst_id, d.tskmst_name, d.tskmst_desc, d.tskmst_type, d.owner_id, d.tskmst_public, d.tskmst_lstchgtm, d.nodmst_id, d.servicemst_id from deleted d END 

Aber das geht nicht –

 CREATE TRIGGER [dbo].[T_tskmst_D] ON [dbo].[tskmst] FOR DELETE AS BEGIN -- SET NOCOUNT ON added to prevent extra result sets from -- interfering with SELECT statements. SET NOCOUNT ON; -- Insert statements for trigger here insert into [database].[dbo].[tskmst] ( tskmst_revtm, tskmst_revtype, tskmst_id, tskmst_name, tskmst_desc, tskmst_type, owner_id, tskmst_public, tskmst_lstchgtm, nodmst_id, servicemst_id) select GETDATE(), 'D', d.tskmst_id, d.tskmst_name, d.tskmst_desc, d.tskmst_type, d.owner_id, d.tskmst_public, d.tskmst_lstchgtm, d.nodmst_id, d.servicemst_id from deleted d inner join tskmst tm on tm.tskmst_id = d.tskmst_id END 

Ich bin verwirrt, warum ein innerer Join auf delete die Abfrage stoppen würde, um die Info zu kopieren? Ist es denn die data werden gelöscht, bevor der innere Join passieren kann? Ist es möglich, die data zu kopieren, bevor die Löschung erfolgt?

Ich kann von gelöschten aber das Problem ist, dass einige Tabellen Textspalten enthalten (nicht fragen), also kann ich nicht aus gelöschten anderen insert Ich vermisse bestimmte Spalten.

Es funktioniert nicht, denn wenn es zum Löschen Trigger. Es bedeutet, dass die gelöschte Zeile bereits in der Tabelle nicht existiert.

Wenn du etwas mit nichts machst, bekommst du immer nichts.