您好, 欢迎来到 !    登录 | 注册 | | 设为首页 | 收藏本站

的SQL Server 2008的管理工作室不检查我的查询语法

的SQL Server 2008的管理工作室不检查我的查询语法

hs_id 从外部查询获取值。

一个查询不投影其select列表中所选表的任何列是完全有效的。

例如

select 10 from Hotelsupplier where id = 142

将返回一个结果集,其中包含与该where子句匹配的行数以及10所有行的值的行数。

不合格的列引用是从最接近的范围向外解析的,因此这仅被视为相关的子查询

查询的结果将是删除Photo其中hs_id不为null的所有行,只要Hotelsupplier至少具有id = 142的一行(因此子查询至少返回一行)

如果您考虑一下这样做的效果,可能会更清楚一点

delete from Photo  where Photo.hs_id  in (select Photo.hs_id)

这当然等同于

delete from Photo where Photo.hs_id = Photo.hs_id

顺便说一句,这是我个人在Microsoft Connect上错误地看到的最常见的“错误”。Erland Sommarskog将其包含在他的愿望清单中,用于SET STRICT_CHECKS ON

SQLServer 2022/1/1 18:47:43 有344人围观

撰写回答


你尚未登录,登录后可以

和开发者交流问题的细节

关注并接收问题和回答的更新提醒

参与内容的编辑和改进,让解决方法与时俱进

请先登录

推荐问题


联系我
置顶