SQL Delete очищает таблицу вместо ошибок

У меня есть кусок SQL, который (вы бы подумали) неКомпилируется, но вместо этого удаляет все строки из целевой таблицы.

Рассмотрим эту настройку:

create table TableA (ColumnA varchar(200));
create table TableB (ColumnB varchar(200));

insert TableA values ('A'),('B'),('C');
insert TableB values ('A');

Тогда следующий sql:

--Returns all rows from TableA
select * from TableA;

--Does not error (ColumnA does not exist on TableB)
delete TableA where ColumnA in (select ColumnA from TableB)

--No Rows are returned
select * from TableA;

Оператор delete, приведенный выше, приводит к удалению всех строк изTableAвместо того, чтобы ошибиться, чтоColumnA Безразлично»не существует вTableB

Там'Скрипт SQL демонстрирует это здесь:http://www.sqlfiddle.com/#!3/9d883/6

Кажется, чтоColumnA отTableA подбирается, но ожидалвне области ".

Почему это?

Ответы на вопрос(2)

Ваш ответ на вопрос