假设这是T-SQL或MS SQL Server,则没有区别,并且语句相同。第一个
FROM关键字在
DELETe语句中在语法上是可选的。
http://technet.microsoft.com/zh-
CN/library/ms189835.aspx
关键字是可选的,原因有两个。
首先,该标准要求
FROM在子句中使用关键字,因此必须遵守该关键字才能符合标准。
其次,尽管关键字是多余的,但这可能不是为什么它是可选的。我相信这是因为SQL Server允许您
JOIN在
DELETe语句中指定a
,而将第一个
FROM强制性设置变为笨拙。
例如,这是一个普通的删除操作:
DELETe FROM Employee WHERe ID = @value
可以简化为:
DELETe Employee WHERe ID = @value
SQL Server允许您基于另一个表删除带有
JOIN:
DELETE EmployeeFROM Employee JOIN Site ON Employee.SiteID = Site.IDWHERe Site.Status = 'Closed'
如果第一个
FROM关键字不是可选的,则上面的第二个查询将看起来像这样:
DELETe FROM EmployeeFROM Employee JOIN Site ON Employee.SiteID = Site.IDWHERe Site.Status = 'Closed'
上面的查询完全有效并且可以执行,但是它是一个非常尴尬的查询。很难说这是一个查询。看起来由于“重复”
FROM子句,两个人混在一起了。
注意:由于没有
ORDER BY子句,因此示例子查询可能不确定。



