sql-server - 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”,当我用方括号括起来时,我会收到错误“由查询定义的 SELECT 列表中的别名 'Alarm Gag' 引起的循环引用.
所以,如果我运行:
INSERT INTO [alarm]
SELECT [alarm gag] FROM [commonservices.alarm] IN ''
[ODBC;DRIVER=ODBC Driver 13 for SQL Server;
SERVER=.;Trusted_Connection=Yes;
DATABASE=CommonServices];
然后我得到:
如果我尝试使用 [priority],我也会遇到同样的问题
有什么想法可以解决这个问题吗?
解决方案
循环引用错误是由与列名相同的列别名引起的。
可以通过为导致循环引用错误的列指定表名来避免它们。
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];
推荐阅读
- php - 如何在 PHP 中发生异常之前执行最后一个 mysqli 查询?
- ios - 使用 Mac Catalyst 构建的应用程序无法传输
- neo4j - Neo4j - 图形数据科学库 - 如何对图形目录中的命名图形进行密码查询?
- sql - 获取从日期字段到固定日期的天数
- c++ - 从多线程写入时丢失了一些日志
- python - 具有不同大小的多个数据帧的数学运算
- scala - Scala过滤掉任何column2与column1匹配的行
- list - 如何在 Clojure 中过滤向量列表?
- coding-style - 请求有关代码风格/最佳实践的输入
- python-3.x - Python & SQLite:遍历行只选择第一行