使用USING的SQL连接:<column name =“”>不是可识别的表提示选项

时间:2015-09-09 12:46:00

标签: sql sql-server sql-server-2008 sql-server-2012

我有以下加入:

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的示例,因为几乎不可能进行相关的网络搜索。然而,当“加入列”具有相同名称时,使用它似乎是正确的...

2 个答案:

答案 0 :(得分:1)

USING关键字用于在the documentation中指定MERGE语句(称为<table source>)的源数据。

答案 1 :(得分:0)

SQL Server语法不支持

USING。它也不是reserved keyword,因此查询引擎将其用作表别名。

它是一个ODBC关键字,但处理方式有些不同。如果您使用它们,引擎不会总是抱怨,但是你不应该使用它们。

它也被列为可能的未来保留关键字。新版本的SQL Server通常会在核心保留列表中添加单词。

就个人而言,我没有看到他们添加NATURAL JOIN语法支持,即使使用USING也是如此。许多DBA认为NATURAL JOIN存在问题。