我有时需要在加入时运行基本更新。例如:
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 认为这就是我的意思?它必须有真正的用途,否则它不会建议它。然而我不知道如何以及何时(以及为什么)。