Мне иногда нужно запускать базовые обновления для объединения. Например:
UPDATE t1 SET col1 = 'val1'
FROM table1 as t1
INNER JOIN table2 as t2
ON t1.ID = t2.t1_id
WHERE t2.col3 = 'val3'
Это прекрасно работает, но по какой-то причине в MS SQL Management Studio Express оно хочет преобразовать это в
UPDATE t1 SET col1 = 'val1'
FROM table1 as t1
INNER JOIN table2 as t2
ON t1.ID = t2.t1_id
CROSS JOIN t2
WHERE t2.col3 = 'val3'
По какой-то причине я добавляю перекрестное соединение.
Теперь мой вопрос: почему Management Studio думает, что я это имел в виду? Это должно иметь подлинное использование, иначе это не предложило бы это. Тем не менее, я понятия не имею, как и когда (и почему).