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

Relacionados