Este é um problema conhecido.
A seguinte declaração erroneamente
delete
TODOS as linhas da tabela de usuários:DELETE FROM users WHERE user_id IN (SELECT user_id FROM groups);
mesmo que a tabela de grupos não tenha uma coluna chamada user_id.
A instrução a seguir, no entanto, lançará um erro:
DELETE FROM users WHERE user_id IN (SELECT g.user_id FROM groups g);
Msg 207, Level 16, State 1, Line 1
Invalid column name user_id
EDITAR
DELETE TOP(1) FROM #Orders WHERE OrderID IN (SELECT OtherID FROM #LIST_TO_DELETE )
Invalid column name 'OtherID'
Isso gera um erro, porque
OtherID
não existe em #Orders