我链接到允许在列名称中使用句点的ProficyHistorian。因为数据是以非DBMS格式存储的,所以我不能openquery用来获取数据,因为表没有设置模式。因此,我必须使用四部分名称语法来获取数据。此示例有效:
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列的名称在哪里
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]
我不得不逃脱列逃脱:)
您只需要逃避这些 ]
]
[pid_astatus[07]][0]].F_CV.Value]
这对我有用
CREATE TABLE #t( [pid_astatus[07]][0]].F_CV.Value] int ) SELECT [pid_astatus[07]][0]].F_CV.Value] FROM #t