2010-05-25 60 views

回答

55

要完成衬托(用什么已经建议):

SELECT * FROM sys.views 

这给每个视图额外的属性,不能从sys.objects中(其中包含适用于所有类型的属性)或INFORMATION_SCHEMA.VIEWS。虽然INFORMATION_SCHEMA方法确实提供了开箱即用的视图定义。

+0

错误(无用)对象名称“sys.views”。我正在查询master DB。 – Steam 2013-11-20 18:02:23

+0

@Steam发布一个单独的问题。 – Gili 2015-08-21 18:39:46

7
SELECT * 
FROM sys.objects 
WHERE type = 'V' 
+1

尽量避免使用一般的“sys.objects中” - 用更具体的意见,而不是 - 'sys.views' – 2010-05-25 10:33:26

3

运行此添加DatabaseName在哪里条件。

SELECT TABLE_NAME, ROW_NUMBER() OVER(ORDER BY TABLE_NAME) AS 'RowNumber' 
    FROM INFORMATION_SCHEMA.VIEWS 
    WHERE TABLE_CATALOG = 'DatabaseName' 

或删除条件添加使用。

use DataBaseName 

    SELECT TABLE_NAME, ROW_NUMBER() OVER(ORDER BY TABLE_NAME) AS 'RowNumber' 
    FROM INFORMATION_SCHEMA.VIEWS 
9
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 
+0

来源:http://blog.sqlauthority.com/2010/10/29/sql-server-list-of-all-the-views-from-database/ – MikeTeeVee 2013-03-12 08:37:32

1
select v.name 
from INFORMATION_SCHEMA.VIEWS iv 
join sys.views v on v.name = iv.Table_Name 
where iv.Table_Catalog = 'Your database name' 
1

有些时候你需要用schema名称来访问,作为一个例子,你正在使用AdventureWorks数据库,你需要用模式来访问。

SELECT s.name +'.'+v.name FROM sys.views v inner join sys.schemas s on s.schema_id = v.schema_id 
+0

比标准的“sys.views” 。并非所有人都在DBO模式中转储表 – Damian 2017-07-31 14:11:33

相关问题