SQL服务器:<table> </table>中DELETE和DELETE之间的区别

时间:2016-09-13 12:56:16

标签: sql sql-server sql-delete

SQL服务器:
区别:

Delete tblxyz where id=6 

和:

Delete from tblxyz  where id=6

以上查询之间是否存在差异?

5 个答案:

答案 0 :(得分:5)

enter image description here如果您看到执行计划都生成删除脚本,则没有区别

DELETE [testtable]  WHERE [numbers]=@1

答案 1 :(得分:4)

这两个陈述之间没有直接的区别 (除了我发现“DELETE FROM”更容易阅读和理解)

请注意,ANSI确实需要jarlh

所述的“FROM”关键字

另见 https://msdn.microsoft.com/en-us/library/ms189835.aspx

答案 2 :(得分:0)

根据MSDN,&#34;来自&#34;是可选的。默认情况下不使用:

  

FROM

     

和目标table_or_view_name,或rowset_function_limited.An可在DELETE关键字之间使用的可选关键字

但是在MS Access(或可能是某些其他数据库)中,您可以使用delete *命令删除一行,因此您必须使用来自

delete * from phoneBook where....

答案 3 :(得分:0)

您的删除没有区别。

但是,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之后的别名来指定要删除的表(尽管在这种情况下,不允许从聚合结果中删除)。

注意:此查询仅用于说明目的。查询没有任何问题,但实际上并不是我在SQL Server中编写这样的查询的方式。

答案 4 :(得分:0)

from子句是可选的.Below是精简版的Syntax ..

DELETE
    [TOP(表达)[PERCENT]]
    [FROM]
    {{table_alias

  

这   可在DELETE关键字与目标table_or_view_name或rowset_function_limited之间使用的可选关键字。