CREATETRIGGER [name of
trigger]
ON [scope (database|server)]
FOR [event]
As
--Trigger definition here…
 Create table back_up
(
actions varchar(20), action_date datetime
)
 create trigger ddl_trg on database
for create_table(,alter_table,drop_table)
as
declare @ac varchar(20);
SELECT top 1 @ac = name FROM sys.tables
insert into back_up values(@ac+' table has been created',
getdate())
print 'table created';
create table std
(
id int, name varchar(20)
)
select * from back_up
 create trigger ddl_db on all server
for create_database
as
declare @ac varchar(20);
declare @dt varchar(30);
SELECT top 100 percent @ac = name FROM sys.databases;
set @dt=getdate();
print @ac+' database has been created on '+ @dt;
create database student_management
 ALTERTABLE Employee_Test
{ENABLE|DISBALE}TRIGGER ALL
 ALTERTABLE Employee_Test DISABLE
TRIGGER trgAfterDelete
 Triggers are said to be nested if one trigger action initiates
another trigger.
 create trigger trgNestedInsert on Employee_Test_Audit for
insert
as
print 'NESTED INSERT trigger fired';
 These can be used as an interceptor for anything that
anyone tried to do on our table or view. If you define
an Instead Of trigger on a table for the Delete
operation, they try to delete rows, and they will not
actually get deleted (unless you issue another delete
instruction from within the trigger)
INSTEAD OFTRIGGERS can be classified further into
three types as:-
(a) INSTEAD OF INSERTTrigger.
(b) INSTEAD OF UPDATETrigger.
(c) INSTEAD OF DELETETrigger.
 CREATE TRIGGER trgInsteadOfDelete ON Employee_Test
 INSTEAD OF DELETE
 AS
 declare @emp_id int;
 declare @emp_name varchar(100);
 declare @emp_sal int;

 select @emp_id=d.Emp_ID from deleted d;
 select @emp_name=d.Emp_Name from deleted d;
 select @emp_sal=d.Emp_Sal from deleted d;
 BEGIN
 if(@emp_sal>1200)
 begin
 RAISERROR('Cannot delete where salary > 1200',16,1);
 ROLLBACK;
 end
 else
 begin
 delete from Employee_Test where Emp_ID=@emp_id;
 COMMIT;
 insert into
Employee_Test_Audit(Emp_ID,Emp_Name,Emp_Sal,Audit_Action,Audit_Timestamp)
 values(@emp_id,@emp_name,@emp_sal,'Deleted -- Instead Of
DeleteTrigger.',getdate());
 PRINT 'Record Deleted -- Instead Of DeleteTrigger.'
 end

Sql server ___________session_20(ddl triggers)

  • 2.
    CREATETRIGGER [name of trigger] ON[scope (database|server)] FOR [event] As --Trigger definition here…
  • 3.
     Create tableback_up ( actions varchar(20), action_date datetime )  create trigger ddl_trg on database for create_table(,alter_table,drop_table) as declare @ac varchar(20); SELECT top 1 @ac = name FROM sys.tables insert into back_up values(@ac+' table has been created', getdate()) print 'table created';
  • 4.
    create table std ( idint, name varchar(20) ) select * from back_up
  • 5.
     create triggerddl_db on all server for create_database as declare @ac varchar(20); declare @dt varchar(30); SELECT top 100 percent @ac = name FROM sys.databases; set @dt=getdate(); print @ac+' database has been created on '+ @dt;
  • 6.
  • 7.
     ALTERTABLE Employee_Test {ENABLE|DISBALE}TRIGGERALL  ALTERTABLE Employee_Test DISABLE TRIGGER trgAfterDelete
  • 8.
     Triggers aresaid to be nested if one trigger action initiates another trigger.  create trigger trgNestedInsert on Employee_Test_Audit for insert as print 'NESTED INSERT trigger fired';
  • 9.
     These canbe used as an interceptor for anything that anyone tried to do on our table or view. If you define an Instead Of trigger on a table for the Delete operation, they try to delete rows, and they will not actually get deleted (unless you issue another delete instruction from within the trigger) INSTEAD OFTRIGGERS can be classified further into three types as:- (a) INSTEAD OF INSERTTrigger. (b) INSTEAD OF UPDATETrigger. (c) INSTEAD OF DELETETrigger.
  • 10.
     CREATE TRIGGERtrgInsteadOfDelete ON Employee_Test  INSTEAD OF DELETE  AS  declare @emp_id int;  declare @emp_name varchar(100);  declare @emp_sal int;   select @emp_id=d.Emp_ID from deleted d;  select @emp_name=d.Emp_Name from deleted d;  select @emp_sal=d.Emp_Sal from deleted d;  BEGIN  if(@emp_sal>1200)  begin  RAISERROR('Cannot delete where salary > 1200',16,1);  ROLLBACK;  end  else  begin  delete from Employee_Test where Emp_ID=@emp_id;  COMMIT;  insert into Employee_Test_Audit(Emp_ID,Emp_Name,Emp_Sal,Audit_Action,Audit_Timestamp)  values(@emp_id,@emp_name,@emp_sal,'Deleted -- Instead Of DeleteTrigger.',getdate());  PRINT 'Record Deleted -- Instead Of DeleteTrigger.'  end