O comando do sistema gerenciador de bancos de dados Microso...

Próximas questões
Com base no mesmo assunto
Q1655600 Banco de Dados
O comando do sistema gerenciador de bancos de dados Microsoft SQL Server 2012, cuja função é similar ao do comando DELETE (sem a cláusula WHERE), é
Alternativas

Gabarito comentado

Confira o gabarito comentado por um dos nossos professores

A alternativa correta é a E - TRUNCATE TABLE.

A questão aborda o conhecimento sobre comandos do SQL Server para a manipulação de dados em um banco de dados, focando em comandos que removem registros das tabelas. Para resolver a questão, é necessário entender a diferença entre os comandos DELETE e TRUNCATE, assim como conhecer o funcionamento básico de cada um dentro do contexto do SQL Server.

O comando DELETE, quando utilizado sem a cláusula WHERE, remove todos os registros de uma tabela, mas faz isso linha por linha, mantendo o registro das deleções no log de transações. Além disso, permite que cada deleção possa ser revertida usando o comando ROLLBACK, caso esteja dentro de uma transação.

Já o comando TRUNCATE TABLE, que é a resposta correta, é utilizado para remover todos os dados de uma tabela de maneira mais eficiente que o DELETE, pois ele não registra a exclusão de cada linha individualmente. Ele é similar a um DELETE sem WHERE, pois também remove todos os registros, mas faz isso reiniciando o espaço de armazenamento da tabela, o que é mais rápido e usa menos recursos de log de transações. No entanto, o TRUNCATE não pode ser usado se a tabela estiver referenciada por uma FOREIGN KEY ou se estiver sendo usada em uma replicação ou com triggers. Além disso, o TRUNCATE TABLE não permite reverter a operação linha por linha com um ROLLBACK, caso você não esteja usando transações ou pontos de salvamento.

As outras alternativas apresentadas não correspondem a comandos válidos no SQL Server para a remoção de dados de uma tabela:

  • CASE TABLE: Não é um comando SQL. CASE é uma expressão condicional que permite retornar valores baseados em condições.
  • COLLATE TABLE: Também não é um comando SQL. COLLATE é usado para definir regras de comparação de caracteres, como a sensibilidade a acentos e maiúsculas/minúsculas.
  • CROSS TABLE: Não é um comando. Pode ser uma referência ao CROSS JOIN, que é um tipo de junção entre tabelas.
  • ROLLBACK TABLE: ROLLBACK é um comando para reverter transações, não para deletar dados de uma tabela.

Portanto, a alternativa E - TRUNCATE TABLE é a única que representa um comando que remove todos os registros de uma tabela de forma similar ao DELETE sem a cláusula WHERE, mas de uma maneira mais rápida e eficiente em termos de recursos de log de transações.

Clique para visualizar este gabarito

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

Comentários

Veja os comentários dos nossos alunos

No SQL, a instrução TRUNCATE TABLE é uma operação da Linguagem de Definição de Dados que marca as extensões de uma tabela para desalocação. O resultado dessa operação remove rapidamente todos os dados de uma tabela, geralmente ignorando vários mecanismos de imposição de integridade. Wikipedia (inglês)

Gabarito: E

O comando TRUNCATE TABLE é executado de forma muito rápida. Porém, não é realizado um registro de log de cada linha excluída. Por isso, é preciso tomar muito cuidado ao decidir usar esse comando. Dependendo do SGBD usado, não é possível realizar  após executar o TRUNCATE (por exemplo, em ), pois um COMMIT implícito é realizado por este comando.

Clique para visualizar este comentário

Visualize os comentários desta questão clicando no botão abaixo