Uma trigger é um comando que o sistema executa automaticamen...

Próximas questões
Com base no mesmo assunto
Q356020 Banco de Dados
Uma trigger é um comando que o sistema executa automaticamente como um efeito colateral de uma modificação no Banco de Dados.

Considere:

create trigger tgr001 before update of concentra referencing new row as novaLinha for each row
when (novaLinha.nome_inst = ' ')
begin atomic
imagem-004.jpg
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 imagem-005.jpg com:
Alternativas

Gabarito comentado

Confira o gabarito comentado por um dos nossos professores

A alternativa correta é a E - set novaLinha.nome_inst = null;. Para compreender a resposta, é fundamental entender o funcionamento de triggers em um banco de dados. Um trigger é um procedimento que é acionado automaticamente em resposta a um evento específico em uma tabela, como inserção, atualização ou exclusão de registros.

O SQL padrão para a criação de um trigger utiliza a cláusula SET para atribuir um novo valor a uma coluna no contexto de uma operação de UPDATE ou INSERT. No caso apresentado, precisamos substituir um valor em branco na coluna nome_inst por um valor nulo (NULL) antes que a atualização seja efetivamente realizada no banco de dados.

A sintaxe correta dentro de um bloco de trigger para alterar o valor de uma coluna é usar a cláusula SET seguida pelo nome da coluna, o sinal de igual (=) e o novo valor a ser atribuído. No contexto da questão, novaLinha refere-se à nova linha que está sendo atualizada e nome_inst refere-se à coluna específica que precisa ter seu valor alterado para nulo se estiver em branco.

A opção E - set novaLinha.nome_inst = null; é correta porque segue precisamente essa sintaxe, indicando que o valor da coluna nome_inst na linha que está sofrendo a atualização deve ser substituído por NULL quando o gatilho for ativado pela condição especificada no WHEN.

As outras opções falham por utilizar palavras-chave ou sintaxe incorretas no contexto de triggers em SQL:

  • replace não é usado desse modo em SQL para definir valores em uma coluna dentro de triggers.
  • def e insert não são cláusulas apropriadas para atribuir valores a colunas em triggers.

Portanto, a cláusula SET é a única maneira correta de especificar a atribuição de um novo valor a uma coluna dentro do contexto de um trigger antes da operação de atualização ser concluída.

Clique para visualizar este gabarito

Visualize o gabarito desta questão clicando no botão abaixo