作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
有一个吗?我正在研究一些存储过程,并且在一个地方找到以下行:
DELETE BI_Appointments
WHERE VisitType != (
SELECT TOP 1 CheckupType
FROM BI_Settings
WHERE DoctorName = @DoctorName)
DELETE FROM BI_Appointments
WHERE VisitType != (
SELECT TOP 1 CheckupType
FROM BI_Settings
WHERE DoctorName = @DoctorName)
最佳答案
假设这是T-SQL或MS SQL Server,则没有区别,并且语句相同。第一个FROM
关键字在DELETE
语句中在语法上是可选的。
http://technet.microsoft.com/en-us/library/ms189835.aspx
关键字是可选的,原因有两个。
首先,该标准在子句中要求使用FROM
关键字,因此必须遵守该标准。
其次,尽管关键字是多余的,但这可能不是为什么它是可选的。我相信这是因为SQL Server允许您在JOIN
语句中指定DELETE
,并且将第一个FROM
强制设置为尴尬。
例如,这是一个普通的删除操作:
DELETE FROM Employee WHERE ID = @value
DELETE Employee WHERE ID = @value
JOIN
进行删除:
DELETE Employee
FROM Employee
JOIN Site
ON Employee.SiteID = Site.ID
WHERE Site.Status = 'Closed'
FROM
关键字不是可选的,则上面的第二个查询将需要如下所示:
DELETE FROM Employee
FROM Employee
JOIN Site
ON Employee.SiteID = Site.ID
WHERE Site.Status = 'Closed'
FROM
子句,两个混在一起了。
ORDER BY
子句,因此示例子查询可能具有不确定性。
关于sql - SQL中的DELETE和DELETE FROM之间的区别?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22336807/
我是一名优秀的程序员,十分优秀!