Lista Triggers Abril2015
789 palavras
4 páginas
Laboratório de Banco de Dados Lista de Exercícios - Triggers
(do material do Prof. Me. Mateus Fuini)
Observação:
Para os exercícios, utilize a base de dados de pedidos criada com o script Pedido.sql.
Exercício 1:
Usando comandos da DDL, insira com campo chamado estado (char(2)) na tabela clientes.
Escreva uma trigger que evite que sejam inseridos novos clientes na tabela clientes em que o campo UF seja “RJ” ou “ES”. Esta trigger será criada para a ação INSERT. Na tentativa de inserção de novos clientes de um destes estados emitir uma mensagem utilizando print: “INSERÇÃO DO REGISTRO CANCELADA” e retroceder a transação (ROLLBACK). Para os demais clientes emitir mensagem “ESTADO PERMITIDO”
Exercício 2:
Escreva uma trigger que seja disparada na tentativa de inclusão de novos produtos na tabela produto. Esta trigger deve emitir um mensagem informando que as inserções dos produtos estão suspensas e registrar em uma tabela chamada tlogproduto com a seguinte estrutura:
create table tlogproduto( usuario varchar(30), dataalteracao datetime, nome-produto varchar(20))
-------------------------
EXEMPLO
CREATE TRIGGER TG_NAOALTERA
ON CUSTOMERS
FOR INSERT
AS
-- variável utilizada no trigger declare @nomecliente varchar(50)
-- define o valor da variável @nomecliente set @nomecliente = (select companyname from inserted) ROLLBACK insert into tentoualterar (cliente, usuario) values (@nomecliente, current_user) print 'VOCÊ NÃO PODE INSERIR NOVOS CLIENTES!' END
-------------------------
Para executar a trigger:
INSERT INTO CUSTOMERS (CUSTOMERID, COMPANYNAME)
VALUES ('123', 'EMPRESA X')
Exercício 3:
Altere a estrutura da tabela produto, incluindo o novo campo qtde_estoque do tipo int.
Escreva um trigger que ao cadastrar um item do pedido (tabela item_pedido), atualize a tabela produto da seguinte forma:
Se qtde_estoque (tabela produto) >= quantidade pedida (usando a tabela inserted)
Então atualizar: qtde_estoque (tabela