我在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];
然后我得到:
如果尝试使用[优先级],我也会遇到同样的问题
有什么办法可以解决这个问题吗?
答案 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];