Triggers en SQL Server 2014

/*creacion de triggers*/
--ejemplo1:
create trigger Ventas.tr_insert_paises
on Ventas.paises
for insert
as
print 'Se desencadeno el trigger tr_insert_paises'
go
--borrar trigger
drop trigger Ventas.tr_insert_paises
go
--probando trigger
insert into Ventas.paises values('010','Venezuela')
go
select * from Ventas.paises
go
--ejemplo2:
create trigger Ventas.tr_mensajes_clientes
on Ventas.clientes
for insert, update, delete
as
print 'Se disparo el mensaje del trigger clientes'
go
--store procedure
create procedure usp_add_clientes
@idclie varchar(5),
@nomclie varchar(40),
@dirclie varchar(60),
@idpais char(3),
@fonoclie varchar(25)
as
begin
begin tran
insert into Ventas.clientes values(@idclie,@nomclie,@dirclie,@idpais,@fonoclie)
if(@@ERROR=0)
begin
commit tran
end
else
begin
rollback tran
end
end
--ejecutar store procedure:
exec usp_add_clientes '00002','Jose Maria Torres Rios','Jr. Azangaro #546','010','1234567'
go
--ejemplo3: trigger y tablas auditoria
create table aud_clientes(
idcliente int identity(1,1)primary key,
codcliente varchar(5),
Nombre varchar(60),
fecha_autoria date)
go
--trigger
create trigger Ventas.Tr_aud_clientes
on Ventas.clientes
for insert
as
begin
insert into aud_clientes(codcliente,Nombre,fecha_autoria)
select IdCliente, NomCliente, getdate() from inserted
end
--verificando
select * from Ventas.clientes where IdCliente='00002'
select * from aud_clientes
GO
--ejemplo4: Trigger y tabla auditoria
create table Compras.aud_categorias(
codauditoria int identity(1,1)primary key,
codcategoria int,
nombre varchar(15),
servidor varchar(15),
fecha date,
hora time)
go
--trigger
create trigger Compras.tr_borrar_categorias
on Compras.categorias
for delete
as
begin
insert into aud_categorias(codcategoria, nombre, servidor, fecha, hora)
select IdCategoria, NombreCategoria, @@SERVERNAME, getdate(), getdate() from deleted
end
--probando trigger
delete from Compras.categorias where IdCategoria=9
select * from Compras.categorias
select * from Compras.aud_categorias
go
--ejemplo5: trigger con operaciones
create trigger Compras.tr_insertar_productos
on Compras.productos
for insert
as
begin
if (select  count (*) from inserted, compras.productos
where inserted.nomproducto = productos.nomproducto) > 1
begin
rollback transaction
print 'El nombre del producto ya existe!'
end
else
begin
commit transaction
print 'El producto se registro satisfactoriamente!'
end
end

Comentarios

Entradas populares

Ejercicios Consola Visual Basic.NET

Numero Capicua Visual Basic

Procedimientos Almacenados ORACLE