【发布时间】:2015-05-20 19:42:32
【问题描述】:
我需要在视图中使用 LEFT JOIN,但是每次保存视图时,SQL Server 都会将 LEFT JOIN 替换为 LEFT OUTER JOIN。
当尝试明确使用 LEFT INNER JOIN 时,我收到错误“单词 'INNER' 附近的语法不正确”。更重要的是,当我想为视图创建索引时,我收到错误“无法使用 OUTER JOINS 向视图添加聚集索引”。
这令人抓狂,想知道为什么会发生这种情况?
因此,当我尝试为视图创建索引时,我收到消息,尽管我没有使用外连接。
【问题讨论】:
-
你试过用
INNER JOIN代替LEFT INNER JOIN吗? -
是的,它有效。但这不是我想做的(我需要表 A 中的所有行,而不仅仅是重叠的行)
-
好吧,我想我不明白那是什么问题。我只知道该错误是在抱怨语法,因为您不能在 SQL Server 中使用
LEFT INNER JOIN。可以在W3Schools SQL Joins 找到可能的连接列表。 -
那是因为
LEFT JOIN与 SQL server 中的LEFT OUTER JOIN相同 傻:P。这个StackOverflow 问题的答案提供了一个很好的解释:)。 -
如果视图需要外连接,那么它不能是索引。称它为左内连接并不能解决这个问题。
标签: sql-server tsql views