gpt4 book ai didi

sql-server - SUBSELECT 包含错误 - 但 sql 语句继续

转载 作者:行者123 更新时间:2023-12-02 00:32:26 24 4
gpt4 key购买 nike

我有以下示例代码:

create table #tempmembers (
memberid int
)

update Members set
Member_EMail = NULL
where Member_ID in (select member_id from #tempmembers)

子选择包含错误,因为 #tempmmembes 不包含名为 member_id 的列,但是 sql 语句运行时没有任何错误并且没有更新任何行。

如果我然后只添加一行到 #tempmembers:

create table #tempmembers (
memberid int
)
insert into #tempmembers select 1

update Members set
Member_EMail = NULL
where Member_ID in (select member_id from #tempmembers)

它仍然运行没有任何错误 - 但这次 Members 中的所有记录都会受到影响。

为什么SQL语句没有完全失败?如果失败的 subselect 被评估为 NULL - 应该更新 Members 中的所有行不仅发生在:

update Members set 
Member_EMail = NULL
where Member_ID not in (select member_id from #tempmembers)

最佳答案

它从外部 查询继承member_id,因此等同于:

   ...
(select Members.member_id from #tempmembers)

这将如预期的那样失败:

   ...
(select #tempmembers.member_id from #tempmembers)

关于sql-server - SUBSELECT 包含错误 - 但 sql 语句继续,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6188353/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com