gpt4 book ai didi

sql-server - 当子查询格式错误时,T-SQL 删除表中的所有行

转载 作者:行者123 更新时间:2023-12-03 20:46:07 25 4
gpt4 key购买 nike

<分区>

Possible Duplicate:
sql server 2008 management studio not checking the syntax of my query

我今天遇到了一个问题,其中一个子查询是错误的,结果是父表中的所有行都被删除了。

TableA
ID,
Text,
GUID

TableB
ID,
TableAID,
Text

delete from TableB
where id in (
select TableAID
from TableA
where GUID = 'fdjkhflafdhf'
)

如果您单独运行子查询,则会出现错误,因为表 A 中不存在列 (TableAID)。如果您运行完整查询 - 它会从表 B 中删除所有记录,而不会出现错误。

我还尝试了以下删除了 0 条记录的查询(预期)

delete from TableB where id in (null) 
delete from TableB where id in (select null)

有人可以向我解释为什么当查询格式错误时会发生这种情况吗?为什么它似乎评估为真?

注意:这是在 SQL Server 2008 R2 上测试的

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