In SQL Server Compact Edition in Visual Studio 2010 (möglicherweise SQL Server und SQL im Allgemeinen, ich weiß es nicht) funktioniert dieser Befehl:
DELETE FROM foods WHERE (name IN ('chickens', 'rabbits'))
Dieser Befehl erzeugt jedoch einen Fehler von: Error near identifier f. Expecting OUTPUT.
DELETE FROM foods f WHERE (f.name IN ('chickens', 'rabbits'))
sql
sql-server
sql-server-ce
Ricardo Altamirano
quelle
quelle
Antworten:
Um die Tabelle zu aliasen, müssten Sie sagen:
Ich sehe
DELETE
keinen Sinn für Aliasing für diese spezifische Aussage, zumal dies (zumindest IIRC) nicht mehr der strengen ANSI entspricht. Aber ja, wie Kommentare vermuten lassen, kann dies für andere Abfrageformulare erforderlich sein (z. B. Korrelation).quelle
SELECT
solche und andere Aussagen verwende, also habe ich instinktiv getan, was ich gewohnt bin, und mich gefragt, warum es nicht richtig funktioniert hat.in
odernot in
nicht funktionieren würden: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
Die delete-Anweisung hat eine seltsame Syntax. Es geht so:
quelle