SQL中的DELETE和DELETE FROM之间的区别?

Joe*_*e M 11 sql t-sql sql-delete

有吗?我正在研究一些存储过程,在一个地方我找到了以下行:

DELETE BI_Appointments
WHERE VisitType != (
    SELECT TOP 1 CheckupType
    FROM BI_Settings
    WHERE DoctorName = @DoctorName)
Run Code Online (Sandbox Code Playgroud)

这会做同样的事情:

DELETE FROM BI_Appointments
WHERE VisitType != (
    SELECT TOP 1 CheckupType
    FROM BI_Settings
    WHERE DoctorName = @DoctorName)
Run Code Online (Sandbox Code Playgroud)

或者是语法错误,还是完全不同的东西?

Bac*_*its 25

假设这是T-SQL或MS SQL Server,没有区别,语句是相同的.第一个FROM关键字在DELETE语句中是语法上可选的.

http://technet.microsoft.com/en-us/library/ms189835.aspx

请注意,您的示例子查询可能是非确定性的,因为没有FROM子句.

  • @JoeM 这就是 ANSI SQL 标准定义查询语法的方式。它的存在是为了符合标准语言语法。 (3认同)

小智 5

嗨朋友们,在oracle数据库中删除和删除没有区别,它是可选的,但这是编写这样的代码的标准, DELETE FROM table [ WHERE condition ] 这是sql-92标准。始终以标准方式开发代码。