可能重複:
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