FC ConcursosFC Concursos

Questão FC372945

No SQL Server 2017 um Auditor Fiscal da área de Tecnologia da Informação foi chamado para analisar as instruções abaixo. DELETE Producao.HistoricoCustoProduto WHERE CustoPadrao BET

Sistema de Gerenciamento de Banco de Dados (SGBD)

FCC · 2019

No SQL Server 2017 um Auditor Fiscal da área de Tecnologia da Informação foi chamado para analisar as instruções abaixo.

 

DELETE Producao.HistoricoCustoProduto

WHERE CustoPadrao BETWEEN 12.00 AND 14.00

AND DataFim IS_NULL;

PRINT 'O número de linhas excluídas é ' + CAST(@@ROWCOUNT as char(3));

 

Concluiu corretamente que há um erro na instrução

  1. @@ROWCOUNT, pois deveria conter apenas um caracter @.
  2. IS_NULL, que deveria ser escrita como IS NULL.
  3. CAST, por ser um comando totalmente desnecessário nesse contexto.
  4. PRINT, pois para exibir a informação na tela deveria ser usada a instrução ECHO.
  5. BETWEEN 12.00 AND 14.00, pois os valores 12.00 AND 14.00 deveriam ser colocados entre parênteses.
Mostrar resposta e comentário

Gabarito

B

Comentário do professor

A sequência IS_NULL está incorreta porque, no T-SQL, o teste de nulidade é feito pelo operador composto IS NULL — duas palavras separadas. O token IS_NULL não existe e gera erro de sintaxe.

Isso ocorre porque NULL representa valor desconhecido; não pode ser comparado com operadores binários como =. Para verificar se uma coluna é nula usa‑se explicitamente IS NULL (ou IS NOT NULL para o contrário).

Exemplo correto aplicado ao enunciado:
DELETE Producao.HistoricoCustoProduto WHERE CustoPadrao BETWEEN 12.00 AND 14.00 AND DataFim IS NULL;

Portanto, basta substituir IS_NULL por IS NULL para que a instrução funcione conforme esperado.

Conteúdo do catálogo FC Concursos · Atualizado em

Continue aprendendo