A SQL trigger is a database object just like a stored procedure or we can say it is a special kind of Stored Procedure that automatically fires when an event occurs in a database. Learn what is a trigger in SQL Server and how to create triggers on a database table. A SQL trigger is a database object just like a stored procedure, or we can say it is a special kind of stored procedure which fires when an event occurs in a database. We can execute a SQL query that will "do something" in a database when an event is fired.

For example, a trigger can be set on a record insert in a database table. For example, if you want to increase the number of count of blogs in the Reports table when a new record is inserted in the Blogs table, we can create a trigger on the Blogs's table on INSERT and update the Reports table by increaing blog count to 1.

Difference Between a Stored Procedure and a Trigger
Triggers are fired implicitly while stored procedures are fired explicitly.

Types of Triggers
There are two types of triggers:

  • DDL Trigger
  • DML Trigger

DDL Triggers
The DDL triggers are fired in response to DDL (Data Definition Language) command events that start with Create, Alter and Drop, such as Create_table, Create_view, drop_table, Drop_view and Alter_table.

Code of a DDL Trigger
create trigger saftey 
on database 
for 
create_table,alter_table,drop_table 
as 
print'you can not create ,drop and alter table in this database' 
rollback;


When we create, alter or drop any table in a database then the following message appears:

DML Triggers
The DML triggeres are fired in response to DML (Data Manipulation Language) command events that start with with Insert, Update and Delete. Like insert_table, Update_view and Delete_table.
    create trigger deep 
    on emp 
    for 
    insert,update,delete 
    as 
    print'you can not insert,update and delete this table i' 
    rollback;


When we insert, update or delete in a table in a database then the following message appears,
dml-triggers-in-sql.jpg
There are two types of DML triggers

AFTER Triggers
AFTER triggers are executed after the action of an INSERT, UPDATE, or DELETE statement.
    create trigger insertt 
    on emp 
    after insert 
    as 
    begin 
    insert into empstatus values('active') 
    end  


INSTEAD Of Triggers
It will tell the database engine to execute the trigger instead of executing the statement. For example an insert trigger executes when an event occurs instead of the statement that would insert the values in the table .

    CREATE TRIGGER instoftr 
    ON v11 
    INSTEAD OF INSERT 
    AS 
    BEGIN 
    INSERT INTO emp 
    SELECT I.id, I.names 
    FROM INSERTED I 
      
    INSERT INTO emp1values 
    SELECT I.id1, I.name1 
    FROM INSERTED I 
    END  

When we insert data into a view by the following query then it inserts values in both tables :
    insert into v11 values(1,'d','dd') 

You can see both tables by the folowing query:
    select * from emp 
    select * from emp1values 

HostForLIFE.eu SQL Server 2019 Hosting
HostForLIFE.eu is European Windows Hosting Provider which focuses on Windows Platform only. We deliver on-demand hosting solutions including Shared hosting, Reseller Hosting, Cloud Hosting, Dedicated Servers, and IT as a Service for companies of all sizes. We have customers from around the globe, spread across every continent. We serve the hosting needs of the business and professional, government and nonprofit, entertainment and personal use market segments.