当然不能 语法错误 delete删除的是一个真是的表 (SELECT TOP 1 * FROM table)只是一个派生表 实际上并不存在 故不能删
sqlserver在delete时,可以指定 top 值,删除指定条数的记录。
--删除tableName表中的钱2条记录,不管查询出来有多少条,只删除前2条
DELETE TOP (2) FROM tableName [WHERE ...]
注:强烈建议在删除数据时,尽量指定top值,这样可以提升性能,并且也可以降低大范围删除。哪怕知道删除的只有一条数据,最好也指定top (1)。
这样的语句本身就有语法错误。修改如下:
delete table
from table a inner join
(select top 1 * from table) b
on a.字段1=b.字段1
and a.字段2=b.字段2
--(如果有多个关键字,都可在这里列出)
可以这样写
假设表名为t_1,其中有字段ID
delete t_1 where ID in (select top 1 ID from t_1 order by ID)
采用标准sql语句,简单明了