Mostrando entradas con la etiqueta trigger en sql 2005. Mostrar todas las entradas
Mostrando entradas con la etiqueta trigger en sql 2005. Mostrar todas las entradas

creando trigger en transac sql

CREANDO TRIGGER EN TRANSAC SQL
trigger (o disparador) en una Base de datos , es un procedimiento que se ejecuta cuando se cumple una condición establecida al realizar una operación. Dependiendo de la base de datos, los triggers pueden ser de inserción (INSERT), actualización (UPDATE) o borrado (DELETE). Algunas bases de datos pueden ejecutar triggers al crear, borrar o editar usuarios, tablas, bases de datos u otros objetos.

He aqui les dejare un ejemplo de como se crea un trigger en transac SQL utilizando la siguiente BD

use bd_cuenta   //-- para llamar a la BD

//-- trigger dml, es para crear una restrigcion de alguna tabla

create trigger tr_cuenta
on cuenta
after update
as begin set nocount on--set nocount on impide que se generen mensajes de texto
set nocount on;
insert into cuenta(id_cuenta,cantidad)
select id_cuenta,cantidad
from inserted
end

//para ejecutar el trigger

update cuenta
set cantidad=cantidad + 10
where id_cuenta=2

select * from cuenta  // para visualizar  la tabla

//para alterar el trigger


alter trigger tr_cuenta
on cuenta
after update as
  begin--set nocount impide que se generen mensajes de texto--con cada instruccion
  set nocount on;
  if update(cantidad)--solo si se actualiza el saldo
     begin insert into cuenta(id_cuenta,cantidad)
     select id_cuenta,cantidad
     from insert    
end
end

alter trigger tr_cuenta
on cuenta
after update as
  begin--set nocount impide que se generen mensajes de texto--con cada instruccion
  set nocount on;
  if update(cantidad)--solo si se actualiza el saldo
     begin insert into cuenta(id_cuenta,cantidad)
     select id_cuenta,cantidad
     from insert
     rollback
    end
end

//para desabilitar el trigger tr_cuenta

disable trigger tr_cuenta on cuenta

//para activar el trigger tr_cuenta

enable trigger tr_cuenta on cuenta

//desactivar todos los triger de la tabla cuenta

alter table cuenta disable trigger all

//activar todos los trigger de la tabla cuenta

alter table cuenta enable trigger all

//la siguiente instruccion impide que se ejecuten sentencias drop table y alter table en la base de datos

create trigger tr_seguridad
on database for drop_table,alter_table
  as
   begin
  raiserror('no esta permitido borrar ni modificar tablas!',16,1)
rollback transaction
end

create table xx
(id_xx int not null,
descripcion varchar(50)
primary key(id_xx)
)

drop table xx

create trigger tr_seguridad1
on database for create_table
  as
   begin
  raiserror('no esta permitido crear tablas!',16,1)
rollback transaction
end

create table yy
(id_yy int not null,
descripcion varchar(50)
primary key(id_yy)
)

Espero que les haya encantado he hecho mi mejor esfuerzo para que ustedes queridos amigos puedan aprender algo de lo poco que yo tambien se , y asi podemos compartir ideas ...