带有空格的ODBC选择列-不喜欢方括号

时间:2018-08-01 10:39:58

标签: sql-server ms-access odbc

我在Access97中有一个查询,该查询从Sql Server 2016中插入到Access97表中,如下所示:

INSERT INTO [alarm]
SELECT priority FROM [commonservices.alarm] IN '' 
[ODBC;DRIVER=ODBC Driver 13 for SQL Server;
 SERVER=.;Trusted_Connection=Yes;
 DATABASE=CommonServices]; 

这很好。

我的问题是,如果我想选择名称为“ Alarm Gag”的空格,当用方括号包裹时,会出现错误“查询中由别名“ Alarm Gag”引起的循环引用”定义的SELECT列表。

所以,如果我运行:

INSERT INTO [alarm]
SELECT [alarm gag] FROM [commonservices.alarm] IN '' 
[ODBC;DRIVER=ODBC Driver 13 for SQL Server;
 SERVER=.;Trusted_Connection=Yes;
 DATABASE=CommonServices]; 

然后我得到:

enter image description here

如果尝试使用[优先级],我也会遇到同样的问题

有什么办法可以解决这个问题吗?

1 个答案:

答案 0 :(得分:1)

循环引用错误是由与列名相同的列别名引起的。

可以通过为引起循环引用错误的列指定表名来避免它们。

INSERT INTO [alarm]
SELECT alarm.[alarm gag] FROM [commonservices.alarm] IN '' 
[ODBC;DRIVER=ODBC Driver 13 for SQL Server;
 SERVER=.;Trusted_Connection=Yes;
 DATABASE=CommonServices];