2010-05-25 61 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

相關問題