No SQL Server Compact Edition no Visual Studio 2010 (talvez SQL Server e SQL em geral, eu não sei), este comando funciona:
DELETE FROM foods WHERE (name IN ('chickens', 'rabbits'))
mas este comando produz um erro de: Error near identifier f. Expecting OUTPUT.
DELETE FROM foods f WHERE (f.name IN ('chickens', 'rabbits'))
sql
sql-server
sql-server-ce
Ricardo Altamirano
fonte
fonte
Respostas:
Para alternar a tabela, você teria que dizer:
Não vejo o ponto de alias para esta
DELETE
declaração específica , especialmente porque (pelo menos IIRC) isso não está mais em conformidade com o ANSI estrito. Mas sim, como sugerem os comentários, pode ser necessário para outros formulários de consulta (por exemplo, correlação).fonte
SELECT
e outras declarações desse tipo, então instintivamente fiz o que estava acostumado e me perguntei por que não funcionou corretamente.in
ounot in
não:DELETE f from dbo.foods as f where not exists (select top 1 1 from animalDiets a where a.AnimalId = f.AnimalId and a.DietId = f.DietId)
delete o from Order as o inner join Customer as c on c.CustomerID = o.CustomerID where c.ArchiveOrders = 1
A instrução delete tem uma sintaxe estranha. É assim:
fonte