Solucionado (ver solução)
Solucionado
(ver solução)
2
respostas

Delete sem from

Realizei o exercício utilizando DELETE sem from e o mesmo funcionou corretamente, porém, na correção é apresentado DELETE FROM. Como ambos funcionam, qual a boa prática nesse caso?

2 respostas
solução!

Oi , achei interessante esse post veja se ajuda

Supondo que seja T-SQL ou MS SQL Server, não há diferença e as instruções são idênticas. A primeira FROMpalavra-chave é sintaticamente opcional em uma DELETEinstrução.

http://technet.microsoft.com/en-us/library/ms189835.aspx

A palavra-chave é opcional por dois motivos.

Primeiro, o padrão requer a FROMpalavra - chave na cláusula, portanto, ele deveria estar lá para conformidade com os padrões.

Segundo, embora a palavra-chave seja redundante, provavelmente não é por isso que é opcional. Acredito que é porque o SQL Server permite que você especifique um JOINna DELETEinstrução, e tornar o primeiro FROMobrigatório o torna estranho.

Por exemplo, aqui está uma exclusão normal:

DELETE FROM Employee WHERE ID = @value E isso pode ser reduzido para:

DELETE Employee WHERE ID = @value E o SQL Server permite excluir com base em outra tabela com um JOIN:

DELETE Employee FROM Employee JOIN Site ON Employee.SiteID = Site.ID WHERE Site.Status = 'Closed' Se a primeira FROMpalavra-chave não fosse opcional, a segunda consulta acima teria a seguinte aparência:

DELETE FROM Employee FROM Employee JOIN Site ON Employee.SiteID = Site.ID WHERE Site.Status = 'Closed' Essa consulta acima é perfeitamente válida e é executada, mas é uma consulta muito estranha de se ler. É difícil dizer que é uma única consulta. Parece que dois foram esmagados juntos por causa das FROMcláusulas "duplicadas" .

Nota lateral: Suas subconsultas de exemplo são potencialmente não determinísticas, pois não há ORDER BYcláusula.

Obrigado pelo resposta @Vagner foi bem esclarecedora.

Quer mergulhar em tecnologia e aprendizagem?

Receba a newsletter que o nosso CEO escreve pessoalmente, com insights do mercado de trabalho, ciência e desenvolvimento de software