Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/sql-server/21.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql server 我的视图在SQL Server中的何处?_Sql Server_Sql Server 2008 Express - Fatal编程技术网

Sql server 我的视图在SQL Server中的何处?

Sql server 我的视图在SQL Server中的何处?,sql-server,sql-server-2008-express,Sql Server,Sql Server 2008 Express,我有一张这样的桌子: sensorId int, Value int, obDate datetime 在SQLServer2008Express中 我想获得每个传感器的最新值,因此我创建了如下视图: CREATE VIEW [dbo].[LAT_POLDATA] AS ( SELECT A.sensorId, A.obDate, A.Value FROM [Met].[dbo].[POLDATA] AS A INNER JOIN (SELECT

我有一张这样的桌子:

sensorId int, Value int, obDate datetime
在SQLServer2008Express中

我想获得每个传感器的最新值,因此我创建了如下视图:

CREATE VIEW [dbo].[LAT_POLDATA] 
AS (
    SELECT A.sensorId, A.obDate, A.Value 
    FROM [Met].[dbo].[POLDATA] AS A
    INNER JOIN 
        (SELECT sensorId, MAX(obDate) AS obDate 
         FROM [Met].[dbo].[POLDATA] 
         GROUP BY sensorId) AS B ON A.sensorId = B.sensorId 
                                 AND A.obDate = B.obDate 
)
现在,如果我从[dbo].[LAT_POLDATA]查询Select*,当我在Microsoft SQL Server Management Studio中执行此操作时,会得到值,但在我的数据库中的视图下看不到此视图

如果我从ASP.net服务查询它,查询将失败并引发错误:

System.Data.SqlClient.SqlException:对象名称“LAT_POLDATA”无效


风景在哪里?为什么我看不到它SSMS?

执行此查询并查看是否可以在此处找到它,此查询将返回在数据库中创建的所有视图

SELECT SCHEMA_NAME(schema_id) AS schema_name
 ,name AS view_name
 ,OBJECTPROPERTYEX(OBJECT_ID,'IsIndexed') AS IsIndexed
 ,OBJECTPROPERTYEX(OBJECT_ID,'IsIndexable') AS IsIndexable
 FROM sys.views
 WHERE name LIKE 'LAT_POLDATA%'
 GO

执行此查询并查看是否可以在此处找到它,此查询将返回在数据库中创建的所有视图

SELECT SCHEMA_NAME(schema_id) AS schema_name
 ,name AS view_name
 ,OBJECTPROPERTYEX(OBJECT_ID,'IsIndexed') AS IsIndexed
 ,OBJECTPROPERTYEX(OBJECT_ID,'IsIndexable') AS IsIndexable
 FROM sys.views
 WHERE name LIKE 'LAT_POLDATA%'
 GO

在ManagementStudio中,请尝试添加首选数据库名称并执行它

use [yourDatabaseName]

Select * from [dbo].[LAT_POLDATA]
如果出现错误,则该视图不在数据库中

然后按照这个

USE [yourDatabasename]
GO

SET ANSI_NULLS ON
GO

SET QUOTED_IDENTIFIER ON
GO

Create View [dbo].[LAT_POLDATA] AS (
    SELECT A.sensorId , A.obDate , A.Value 
    FROM [Met].[dbo].[POLDATA] AS A
    INNER JOIN (
        SELECT sensorId , MAX(obDate) AS obDate 
        FROM [Met].[dbo].[POLDATA] 
        GROUP BY sensorId  
    ) AS B
        ON A.sensorId  = B.sensorId 
        AND A.obDate  = B.obDate 
)

GO

在ManagementStudio中,请尝试添加首选数据库名称并执行它

use [yourDatabaseName]

Select * from [dbo].[LAT_POLDATA]
如果出现错误,则该视图不在数据库中

然后按照这个

USE [yourDatabasename]
GO

SET ANSI_NULLS ON
GO

SET QUOTED_IDENTIFIER ON
GO

Create View [dbo].[LAT_POLDATA] AS (
    SELECT A.sensorId , A.obDate , A.Value 
    FROM [Met].[dbo].[POLDATA] AS A
    INNER JOIN (
        SELECT sensorId , MAX(obDate) AS obDate 
        FROM [Met].[dbo].[POLDATA] 
        GROUP BY sensorId  
    ) AS B
        ON A.sensorId  = B.sensorId 
        AND A.obDate  = B.obDate 
)

GO

抱歉,如果问题很琐碎,但是,您是否刷新了视图?ManagementStudio在你刷新之前不会显示新创建的对象…这是我做的第一件事。你没有在Master或任何其他数据库上创建它吗?或者可能在事务中?不是为了推广产品,但您可以从redgate下载此免费工具,它允许您搜索sql实例中的所有对象:您可以在服务器上的所有数据库中搜索视图名称,然后您可能已经在主数据库下创建了视图抱歉,如果问题很简单,但是,你更新了你的观点吗?ManagementStudio在你刷新之前不会显示新创建的对象…这是我做的第一件事。你没有在Master或任何其他数据库上创建它吗?或者可能在事务中?不是为了推广产品,但您可以从redgate下载此免费工具,它允许您搜索sql实例中的所有对象:您可以在服务器上的所有数据库中搜索视图名称,然后您可能已经在主数据库下创建了视图是的,您是对的。它不在我的数据库里。那么,如何创建视图,以便在我的数据库中而不是在主数据库中创建它呢?当我在create view语句之前使用use[yourDatabaseName]时,会收到错误消息:“create view”必须是查询批处理中的第一条语句尝试在use[…]行和create view行之间添加GO是的,您是对的。它不在我的数据库里。那么,如何创建视图,以便在我的数据库中而不是在主数据库中创建它呢?当我在create view语句之前使用use[yourDatabaseName]时,会收到错误消息:“create view”必须是查询批处理中的第一条语句尝试在use[…]行和create view行之间添加GO