_十二 2024-02-06 13:40 采纳率: 100%
浏览 2
已结题

SQL Delete语句使用两个FROM

Delete From CEF_RACK_BOX_ORDER From CEF_RACK_BOX_ORDER D [Where 语句]

在SQLServer 中这种写法并不会报错
不明白的是,为什么使用两个FROM,且是同一张表?
有dl解释一下吗?

  • 写回答

3条回答 默认 最新

  • 专家-赤兔[在线] 全栈领域优质创作者 2024-02-06 13:41
    关注

    引自免费微信小程序:皆我百晓生

    在标准的SQL语法中,DELETE语句并不需要也不支持使用两个FROM关键字来指定同一张表。然而,在SQL Server中,尽管不推荐这种写法,但确实可以接受额外的表引用,这更多是由于SQL Server对非标准语法的某种程度上的容忍,并不会报错。

    关于SQL Server中的“双FROM”现象

    当您写出如下形式的DELETE语句时:

    DELETE From CEF_RACK_BOX_ORDER 
    From CEF_RACK_BOX_ORDER D 
    [Where 条件];
    

    这里的第二个From及其后的表名实际上是在为要删除的数据创建一个别名(这里别名为D)。虽然它看起来冗余,但在某些情况下,可能是因为开发者想通过别名来明确指定表并且在WHERE子句中使用这个别名以提高可读性或方便编写复杂的查询条件。

    标准SQL DELETE语句格式:

    在标准SQL中,通常会这样编写DELETE语句:

    DELETE FROM table_name
    [WHERE condition];
    

    例如,若要从CEF_RACK_BOX_ORDER表中删除满足特定条件的记录,标准且清晰的做法应该是:

    DELETE D
    FROM CEF_RACK_BOX_ORDER AS D
    WHERE [your_condition];
    

    在这里,D作为CEF_RACK_BOX_ORDER的别名被用来在WHERE子句中引用列。尽管SQL Server允许上述非标准的写法,但为了保持代码的可移植性和遵循最佳实践,建议始终采用标准的SQL语法书写DELETE语句。

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(2条)

报告相同问题?

问题事件

  • 已结题 (查看结题原因) 2月6日
  • 已采纳回答 2月6日
  • 创建了问题 2月6日

悬赏问题

  • ¥30 远程帮我安装软件及库文件
  • ¥15 关于#自动化#的问题:如何通过电脑控制多相机同步拍照或摄影(相机或者摄影模组数量大于60),并将所有采集的照片或视频以一定编码规则存放至规定电脑文件夹内
  • ¥20 深信服vpn-2050这台设备如何配置才能成功联网?
  • ¥15 Arduino的wifi连接,如何关闭低功耗模式?
  • ¥15 Android studio 无法定位adb是什么问题?
  • ¥15 angular项目错误
  • ¥20 需要帮我远程操控一下,运行一下我的那个代码,我觉得我无能为力了
  • ¥20 有偿:在ubuntu上安装arduino以及其常用库文件。
  • ¥15 请问用arcgis处理一些数据和图形,通常里面有一个根据点划泰森多边形的命令,直接划的弊端是只能执行一个完整的边界,但是我们有时候会用到需要在有很多边界内利用点来执行划泰森多边形的命令
  • ¥30 在wave2foam中执行setWaveField时遇到了如下的浮点异常问题,请问该如何解决呢?