如何创建指向字段名称中带有句点的 SQL Server 视图的 Jet ODBC 链接?

Posted

技术标签:

【中文标题】如何创建指向字段名称中带有句点的 SQL Server 视图的 Jet ODBC 链接?【英文标题】:How do I create a Jet ODBC link to a SQL Server view with periods in the field names? 【发布时间】:2008-10-02 01:20:29 【问题描述】:

我需要创建一个从 Access 2003 (Jet) 数据库到 SQL Server 托管视图的 ODBC 链接,其中包含包含句点的别名字段名称,例如:

Seq.Group

在视图后面的 SQL 源代码中,字段名称用方括号括起来...

SELECT Table._Group AS [Seq.Group]

...所以 SQL Server 不会抱怨创建视图,但是当我尝试从 Jet DB(以编程方式或通过 Access 2003 UI)创建指向它的 ODBC 链接时,我收到错误消息:

'Seq.Group' 不是有效名称。制作 确保它不包括无效 字符或标点和它 不会太长。

不幸的是,我无法修改视图的结构,因为它是另一个产品的一部分,所以我被字段名称所困扰。我可以使用无标点符号的字段名称添加自己的视图,但我真的宁愿根本不修改 SQL Server,因为这样每次升级、修补程序等时都会成为另一个维护点. 有谁知道更好的解决方法?

【问题讨论】:

【参考方案1】:

虽然从技术上讲,我并没有最终摆脱点,但您的建议实际上确实让我意识到了另一种选择。在想知道如何将转义码“传递”到“SQL”服务器时,我突然想到:为什么不使用“SQL 传递查询”而不是 ODBC 链接表?因为我只需要对 SQL Server 数据的读取权限,所以它工作正常!谢谢!

【讨论】:

【参考方案2】:

只是在这里猜测:您是否尝试转义点?像“[Seq\.Group]”这样的东西?

【讨论】:

【参考方案3】:

另一个建议是在您的 sql 服务器上添加一个新视图,而不是修改现有视图。即使您的初始视图是“解决方案”的一部分,也没有什么能阻止您添加新视图:

SELECT Table._Group AS [Seq_Group]

【讨论】:

以上是关于如何创建指向字段名称中带有句点的 SQL Server 视图的 Jet ODBC 链接?的主要内容,如果未能解决你的问题,请参考以下文章

在 Heroku 上使用 Boto 时,无法连接到名称中带有句点的 S3 存储桶

如何查询列名中带有句点的 Excel 工作表

如何使用 Presto JSON 函数访问字段名称中带有“~”的 json 字段

用名称中的句点重命名clickhouse中的列

SQL 游标 FOR 循环,模式名称中带有 / 变量

Project Server 2016 中带有 PSI 的任务摘要名称