Avalie o comando abaixo, escrito em linguagem SQL.UPDATE TB_VENDEDOR SET IND_ATIVO = 'S';Considerando que a estrutura do campo IND_ATIVO da tabela TB_VENDEDOR não contém nenhuma restrição, quantos registros da tabela serão atualizados?
ANenhum registro.
BTodos os registros.
CApenas os registros cujo campo IND_ATIVO seja igual a 'N'.
DApenas os registros cujo campo IND_ATIVO seja igual a 'S'.
EApenas os registros cujo campo IND_ATIVO seja diferente de NULL.
Revelar gabarito e comentário▾
GabaritoB — Todos os registros.
Comentário gerado por IA. É um apoio ao estudo, ancorado em fontes, mas pode conter imprecisões — confira sempre na fonte oficial (lei, súmula, edital e gabarito da banca). Encontrou um erro? Use “Reportar”.
Comando UPDATE sem cláusula WHERE em SQL
Gabarito: letra B. O comando UPDATE TB_VENDEDOR SET IND_ATIVO = 'S'; não possui cláusula WHERE, portanto a atualização atinge todas as linhas da tabela, independentemente do valor atual do campo IND_ATIVO. Isso é comportamento padrão da linguagem SQL: sem filtro, o UPDATE opera sobre o conjunto completo de registros.
A questão testa o entendimento básico do comando UPDATE e a ausência de restrições (como NOT NULL, CHECK ou PRIMARY KEY) no campo IND_ATIVO não interfere na abrangência da operação. Até mesmo valores NULL seriam substituídos por 'S', já que não há condição restritiva.
Alternativa A — ✅ Incorreta
Afirma que nenhum registro seria atualizado. Isso só ocorreria se houvesse uma restrição que impedisse a atribuição do valor 'S' (ex.: CHECK (IND_ATIVO IN ('N','NULL'))), mas o enunciado diz expressamente que não há nenhuma restrição no campo. Portanto, todos os registros são afetados.
Alternativa B — ✅ Correta ⟵ GABARITO
O comando sem WHERE atualiza todos os registros da tabela. A sintaxe é válida e o valor 'S' será atribuído a cada linha, independentemente do conteúdo anterior do campo IND_ATIVO. É o comportamento esperado do UPDATE sem filtro.
Alternativa C — ❌ Incorreta
Afirma que apenas registros com IND_ATIVO = 'N' seriam atualizados. Não há cláusula WHERE que restrinja a atualização a esse valor. A condição não existe, logo a afirmação é falsa.
Alternativa D — ❌ Incorreta
Afirma que apenas registros com IND_ATIVO = 'S' seriam atualizados. Sem WHERE, o comando atinge todas as linhas, inclusive aquelas com valor diferente de 'S'. A atualização de um campo para 'S' não depende do valor atual ser 'S'.
Alternativa E — ❌ Incorreta
Afirma que apenas registros com IND_ATIVO diferente de NULL seriam atualizados. Em SQL, a ausência de WHERE faz com que a atualização se aplique a todas as linhas, incluindo aquelas com NULL no campo. O comando SET IND_ATIVO = 'S' substitui qualquer valor, inclusive NULL, sem restrição.
NÃO CAIA NESSA!
Lembre-se do mantra: sem WHERE, o UPDATE atualiza a tabela inteira. Sempre que uma questão de SQL omitir a cláusula WHERE em UPDATE ou DELETE, o efeito é sobre todos os registros. É uma pegadinha clássica em provas de banco de dados.
Gabarito: letra B — todos os registros serão atualizados.