我有以下加入:
SELECT * FROM tableA INNER JOIN tableB USING (commonColumn)
我收到错误:
“commonColumn”不是可识别的表提示选项。如果是 作为表值函数或参数的参数 CHANGETABLE函数,确保您的数据库兼容模式 设置为90。
以下代替:
SELECT * FROM tableA INNER JOIN tableB ON tableA.commonColumn = tableB.commonColumn
我的情况下的兼容级别设置为100(SQL Server 2008),顺便说一下,我正在使用SQL Server 2012.
我做错了什么?我发现很难找到使用关键字USING
的示例,因为几乎不可能进行相关的网络搜索。然而,当“加入列”具有相同名称时,使用它似乎是正确的...
答案 0 :(得分:1)
USING
关键字用于在the documentation中指定MERGE
语句(称为<table source>
)的源数据。
答案 1 :(得分:0)
USING
。它也不是reserved keyword,因此查询引擎将其用作表别名。
它是一个ODBC关键字,但处理方式有些不同。如果您使用它们,引擎不会总是抱怨,但是你不应该使用它们。
它也被列为可能的未来保留关键字。新版本的SQL Server通常会在核心保留列表中添加单词。
就个人而言,我没有看到他们添加NATURAL JOIN语法支持,即使使用USING也是如此。许多DBA认为NATURAL JOIN存在问题。