可能重复:
sql server 2008 management studio not checking the syntax of my queryT-SQL删除表中的所有行,当查询是畸形
我碰到一个问题,今天跑到哪里子查询是坏的,结果是所有父表中的行被删除。
TableA
ID,
Text,
GUID
TableB
ID,
TableAID,
Text
delete from TableB
where id in (
select TableAID
from TableA
where GUID = 'fdjkhflafdhf'
)
如果你本身运行子查询你,因为如果你运行完整查询列(TableAID)不表A.存在得到一个错误 - 它将删除表B中的所有记录没有错误。
我也试过可以除去0记录(预期)
delete from TableB where id in (null)
delete from TableB where id in (select null)
有人能解释我为什么当查询是畸形的,这是发生下列查询?为什么它似乎评估为真?
注:这是SQL服务器上测试2008 R2
好问题,我已经过这个以前一样运行良好。 – RedFilter 2012-01-11 14:54:10
注:我假设'TableB'确实有一个名为'somebadcolumn'的列?如果是这样,你就错过了这个问题。 – 2012-01-11 14:59:22
该列不存在。我更新的问题有更多的清晰。 – tsells 2012-01-11 15:01:30