Dalam SQL Server Compact Edition di Visual Studio 2010 (mungkin SQL Server dan SQL secara umum, saya tidak tahu), perintah ini berfungsi:
DELETE FROM foods WHERE (name IN ('chickens', 'rabbits'))
tetapi perintah ini menghasilkan kesalahan: Error near identifier f. Expecting OUTPUT.
DELETE FROM foods f WHERE (f.name IN ('chickens', 'rabbits'))
sql
sql-server
sql-server-ce
Ricardo Altamirano
sumber
sumber
Jawaban:
Untuk alias tabel, Anda harus mengatakan:
Saya gagal melihat titik aliasing untuk
DELETE
pernyataan spesifik ini , terutama karena (setidaknya IIRC) ini tidak lagi sesuai dengan ANSI yang ketat. Tapi ya, seperti komentar menyarankan, mungkin diperlukan untuk formulir permintaan lain (misalnya korelasi).sumber
SELECT
dan pernyataan lainnya, jadi saya secara naluriah melakukan apa yang saya terbiasa dan bertanya-tanya mengapa itu tidak berfungsi dengan baik.in
ataunot in
tidak berfungsi: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
Pernyataan delete memiliki sintaks aneh. Bunyinya seperti ini:
sumber