【发布时间】:2010-07-19 20:45:00
【问题描述】:
我链接到一个 Proficy Historian,它允许在列名中使用句点。因为数据以非 DBMS 格式存储,所以我无法使用 openquery 获取数据,因为表没有设置模式。所以我必须使用四部分名称语法来获取数据。这个例子有效:
SELECT * FROM iHist...[SELECT * FROM ihTrend]
但这会失败,'.' 附近的语法不正确。
SELECT * FROM iHist...[SELECT [SERVER.pid_astatus[07][0].F_CV.Value] FROM ihTrend]
其中SERVER.pid_astatus[07][0].F_CV.Value 是列的名称
关键字“from”附近的语法不正确也会失败。
SELECT * FROM
iHist...[SELECT [SERVER.pid_astatus[[07]][[0]].F_CV.Value] from ihTrend]`
关于如何让 SQL Server 将此视为列的任何想法?
编辑:
Martins 建议右括号转义括号仅适用于 sql 调用的外部
SELECT [SERVER.pid_astatus[07]][0]].F_CV.Value] FROM iHist...[SELECT * FROM ihTrend]
但是它在关键字'from'附近的语法错误中不起作用。
SELECT * FROM iHist...[SELECT [SERVER.pid_astatus[07]][0]].F_CV.Value] FROM ihTrend]
编辑
SELECT * FROM iHist...[SELECT [SERVER.pid_astatus[07]][0]].F_CV.Value]] FROM ihTrend]
我不得不逃离列转义:)
【问题讨论】:
标签: sql sql-server linked-server historian