I'm trying to create a basic database trigger that conditionally deletes rows from database1.table1 when a row from database2.table2 is deleted. I'm new to triggers and was hoping to learn the best way to accomplish this. This is what I have so far. Suggestions?
CREATE TRIGGER sampleTrigger ON database1.dbo.table1 FOR DELETE AS IF EXISTS (SELECT foo FROM database2.dbo.table2 WHERE id = deleted.id AND bar = 4) -- If there is a row that exists in database2.dbo.table2 -- matching the id of the deleted row and bar=4, delete -- it as well. -- DELETE STATEMENT? GO
Expand the database that you want, expand Tables, and then expand the table that contains the trigger that you want to delete. Expand Triggers, right-click the trigger to delete, and then click Delete. In the Delete Object dialog box, verify the trigger to delete, and then click OK.
INSTEAD OF DELETE TRIGGERS are used, to delete records from a view. Introduction. INSTEAD OF DELETE triggers are used to delete records from a View that is based on multiple tables. Description. An INSTEAD OF DELETE trigger gets executed in place of the DELETE event on a table or a View.
A DELETE does not fire UPDATE triggers.
CREATE TRIGGER sampleTrigger ON database1.dbo.table1 FOR DELETE AS DELETE FROM database2.dbo.table2 WHERE bar = 4 AND ID IN(SELECT deleted.id FROM deleted) GO
Better to use:
DELETE tbl FROM tbl INNER JOIN deleted ON tbl.key=deleted.key
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With