我已经在这个话题上做了相当多的google搜索,我知道这是一个重复的问题。但是,下面是我的查询:
SELECT
i.tag_name, i.value, i.aggregate_id, i.aggregate_interval, i.time_stamp
FROM
OPENQUERY(odbcclient,
'Select
time_stamp, tag_name, value,
aggregate_id, aggregate_interval
from
canarydata.data
where
aggregate_id = ''TimeAverage2''
and aggregate_interval = ''1:00:00:00''
and tag_name LIKE ''%SearchVal%'''
) AS i当我运行这个查询时,它执行得很好。但是,一旦我尝试将其创建到视图中,就会收到以下错误消息:
来源:.Net SqlClient数据提供程序 错误信息:找不到列"time_stamp“或用户定义的函数或聚合"time_stamp.ToString",或者名称不明确。
如何重写查询以在视图中运行?
另外,从脚本执行这个查询和在视图中执行这个查询有什么区别呢?
发布于 2014-02-13 20:42:11
上次碰上类似的东西时,我要做个猜测。Server的视图设计器在数据库支持的某些方面将失败,我相信在视图设计器中使用openquery的方面就是其中之一。
如果我是正确的(而且您还没有尝试像下面这样编写脚本),您应该能够通过脚本直接创建视图,如下所示:
CREATE VIEW dbo.myView AS
SELECT i.tag_name, i.value, i.aggregate_id,
i.aggregate_interval, i.time_stamp
FROM OPENQUERY(odbcclient,
'Select time_stamp, tag_name, value,
aggregate_id,aggregate_interval
from canarydata.data
where aggregate_id = ''TimeAverage2''
and aggregate_interval = ''1:00:00:00''
and tag_name LIKE ''%SearchVal%''')
AS i
GO发布于 2014-02-14 23:07:07
马修斯建议后全员指挥:
USE [ODBC]
GO
/****** Object: View [dbo].[Averages] ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE View [dbo].[Averages] AS
SELECT i.time_stamp, i.tag_name, i.value,
i.aggregate_id, i.aggregate_interval
FROM OPENQUERY(odbcclient,
'Select time_stamp, tag_name, value,
aggregate_id, aggregate_interval
from data.data
where aggregate_id = ''TimeAverage2''
and aggregate_interval = ''1:00:00:00''
and tag_name LIKE ''%Point%''')
AS i
GOhttps://stackoverflow.com/questions/21706046
复制相似问题