SQL 服务器:DELETE <Table> 和 DELETE from <Table> 之间的区别
SQL server: difference between DELETE <Table> and DELETE from <Table>
SQL 服务器:
之间的差异:
Delete tblxyz where id=6
和:
Delete from tblxyz where id=6
它们与上述查询有什么区别吗?
两种说法没有直接区别
(除了我发现 "DELETE FROM" 更容易阅读和理解)
请注意,如 jarlh
所述,ANSI 确实需要 "FROM" 关键字
如果你看到执行计划都生成删除脚本,没有区别,如下所示
DELETE [testtable] WHERE [numbers]=@1
根据 MSDN,单词 "from" 是可选的。默认不使用:
FROM
and the target table_or_view_name, or rowset_function_limited.An optional keyword that can be used between the DELETE keyword
但是在 MS Access(或者可能是其他一些数据库)中,您可以使用 delete *
命令删除一行,因此您必须使用 from:
delete * from phoneBook where....
你的删除没有区别
但是,FROM
子句是一个功能齐全的 from 子句,因此您可以将它与 JOIN
一起使用。例如:
delete t
from t join
(select min(id) as minid
from t
group by grp
) tt
on t.id = tt.minid;
这将删除每个 grp
值具有最小 ID 的记录。 delete
后面的别名需要指定从哪个table中删除(虽然在这种情况下,不允许从聚合结果中删除)。
注意:此查询仅用于说明目的。查询没有任何问题,但这不是我在 SQL 服务器中实际编写这样的查询的方式。
from 子句是可选的..下面是语法的简化版本..
删除
[ TOP ( 表达式 ) [ PERCENT ] ]
[来自]
{ { table_alias
FROM
An optional keyword that can be used between the DELETE keyword and the target table_or_view_name, or rowset_function_limited.
SQL 服务器:
之间的差异:
Delete tblxyz where id=6
和:
Delete from tblxyz where id=6
它们与上述查询有什么区别吗?
两种说法没有直接区别 (除了我发现 "DELETE FROM" 更容易阅读和理解)
请注意,如 jarlh
所述,ANSI 确实需要 "FROM" 关键字DELETE [testtable] WHERE [numbers]=@1
根据 MSDN,单词 "from" 是可选的。默认不使用:
FROM
and the target table_or_view_name, or rowset_function_limited.An optional keyword that can be used between the DELETE keyword
但是在 MS Access(或者可能是其他一些数据库)中,您可以使用 delete *
命令删除一行,因此您必须使用 from:
delete * from phoneBook where....
你的删除没有区别
但是,FROM
子句是一个功能齐全的 from 子句,因此您可以将它与 JOIN
一起使用。例如:
delete t
from t join
(select min(id) as minid
from t
group by grp
) tt
on t.id = tt.minid;
这将删除每个 grp
值具有最小 ID 的记录。 delete
后面的别名需要指定从哪个table中删除(虽然在这种情况下,不允许从聚合结果中删除)。
注意:此查询仅用于说明目的。查询没有任何问题,但这不是我在 SQL 服务器中实际编写这样的查询的方式。
from 子句是可选的..下面是语法的简化版本..
删除
[ TOP ( 表达式 ) [ PERCENT ] ]
[来自]
{ { table_alias
FROM An optional keyword that can be used between the DELETE keyword and the target table_or_view_name, or rowset_function_limited.