Questões de Concurso
Comentadas sobre gatilhos (triggers) em banco de dados
Foram encontradas 176 questões
Para a automatização dos procedimentos derivados das operações de inserção, alteração ou exclusão no banco de dados, pode-se utilizar o gatilho, procedimento armazenado que é executado sempre que houver uma dessas operações sob condições determinadas pelo projetista do banco de dados.
CREATE TABLE orders (order_id NUMBER PRIMARY KEY, line_items_count NUMBER DEFAULT 0 ); CREATE TABLE lineitems (order_id REFERENCES orders, seq_no NUMBER, CONSTRAINT lineitems PRIMARY KEY(order_id,seq_no) );
Foi criada, relacionada às tabelas, a seguinte trigger, colocada em execução:
CREATE OR REPLACE TRIGGER lineitems_trigger AFTER INSERT OR UPDATE OR DELETE ON lineitems FOR EACH ROW BEGIN IF (INSERTING OR UPDATING) THEN UPDATE orders SET line_items_count = NVL(line_items_count,0)+1 WHERE order_id = :new.order_id; END IF; IF (DELETING OR UPDATING) THEN
UPDATE orders SET line_items_count = NVL(line_items_count,0)-1 WHERE order_id = :old.order_id; END IF; END; /
Em seguida, foram executadas as instruções abaixo, nesta ordem:
INSERT INTO orders (order_id) VALUES (78); INSERT INTO orders(order_id) VALUES (92); INSERT INTO lineitems (order_id, seq_no) VALUES (78,1); INSERT INTO lineitems (order_id, seq_no) VALUES (78,2); SELECT * FROM orders;
Considere:
I. Ao executar a instrução INSERT INTO orders (order_id) VALUES (78); a trigger incrementou o valor contido no campo line_items_count passando de 0 para 1.
II. Ao executar a instrução INSERT INTO lineitems (order_id, seq_no) VALUES (78,1); a trigger incrementou o valor contido no campo line_items_count da tabela orders passando de 0 para 1.
III. Ao executar a instrução INSERT INTO lineitems (order_id, seq_no) VALUES (78,2); a trigger incrementou o valor contido no campo line_items_count da tabela orders passando de 1 para 2.
IV. A instrução SELECT * FROM orders; mostrará no campo line_items_count da linha cujo order_id é 78 o valor 3.
Está correto o que consta APENAS em
Os gatilhos DDL são executados em resposta a diversos eventos que correspondem, basicamente, às seguintes instruções Transact-SQL:
Em SQL, triggers são conhecidas como técnicas de banco de dados ativo, pois especificam ações que são disparadas automaticamente por eventos.
Para desabilitar uma trigger DDL (data definition language) definida com escopo de servidor (on all server), é necessária a permissão control server no servidor
As triggers podem ser utilizadas para garantir integridade na relação entre duas tabelas, mesmo que não haja a criação de uma referência por meio de uma chave estrangeira entre essas tabelas.
Os triggers otimizam o desempenho de sentenças SQL
Em bancos de dados relacionais que utilizam SQL, a restrição de integridade semântica “o salário de um funcionário não deve ser superior ao salário de seu supervisor” pode ser especificada e imposta em programas de aplicação que atualizem o banco de dados ou por meio do uso de triggers e assertions.
CREATE TRIGGER < nome do trigger>
< tempo de ação do trigger>
< evento para acionar o trigger>
ON < nome da tabela>
< ação>
O parâmetro < tempo de ação do trigger > possui as seguintes opções válidas:
I. Gatilhos (triggers) são ações executadas automaticamente pelo SGBD, mediante satisfação de uma condição previamente estabelecida.
II. Procedimentos (procedures) e funções (functions) são estruturas idênticas, que não apresentam diferença alguma no SGBD Oracle 10g.
III. Na arquitetura do SGBD Oracle 10g, PGA (Program Global Area) é o nome dado à estrutura de memória adicional criado para cada usuário. Esse conceito é também conhecido como SGA (System Global Area).
IV. Uma visão é construída a partir de uma consulta. Sendo assim, o resultado de uma consulta possui estrutura semelhante a uma tabela do modelo relacional.
verifica-se que somente
Considere:
create trigger tgr001 before update of concentra referencing new row as novaLinha for each row
when (novaLinha.nome_inst = ' ')
begin atomic

end;
Para que a trigger em SQL padrão acima substitua o valor em branco (' ') contido no campo nome_inst pelo valor nulo, deve-se completar
com:
Assinale a alternativa que indica a opção mais recomendada para atingir este objetivo.
As sintaxes corretas para desabilitar uma trigger específica trigger1 e todas as triggers da tabela tabela1 são apresentadas a seguir.
ALTER TRIGGER trigger1 DISABLE;
ALTER TABLE tabela1
DISABLE ALL TRIGGERS;
I. Cada tipo de evento requer um trigger específico.
II. Uma tabela possui no máximo um trigger para cada tipo de evento.
III. Tabelas que possuem pelo menos um trigger não podem ser eliminadas de um banco de dados.
Marque a alternativa correta em relação às afirmativas acima.