Trigger is procedural
code that is automatically executed in response to certain events on a specific
table in a database. Triggers can restrict access to specific data, perform
logging, or audit data modifications.
Triggers are of 3 types in SQL
Server 2005:
1. DML Triggers
- AFTER Triggers
- INSTEAD OF Triggers { INSERT, UPDATE, and DELETE }
2. DDL Triggers {if any schema change.}
3. CLR Triggers
1. DML Triggers
- AFTER Triggers
- INSTEAD OF Triggers { INSERT, UPDATE, and DELETE }
2. DDL Triggers {if any schema change.}
3. CLR Triggers
Create trigger Delete_TrigerName
on
ReferanceTable
for Delete
as
--Checking for
Table exist.
--if Table not
exist then create a table with same schema of operation table
if NOT EXISTS(SELECT * FROM information_schema.tables
WHERE
TABLE_CATALOG = 'DATABASE-NAME'
AND
table_name = 'Backup-TABLE-NAME')
begin
-- Copy full table with creating table of copied table schema
select * into Backup-TABLE-NAME from
deleted
--Set Identity column Off. Otherwise we will not
able to track the previous
position of table.
SET IDENTITY_INSERT [Backup-TABLE-NAME ] off
end
else
begin
INSERT INTO Backup-TABLE-NAME ([Column1],[ Column2],[ Column3])
SELECT [Column1],[ Column2],[ Column3]
FROM deleted
end
--select * from Backup-TABLE-NAME
--select * from
AgentMaster
--delete from AgentMaster where
Ag_ApplNo=22