2010-05-25 6 views

Trả lời

55

Để hoàn tất đặt ra (với những gì đã được đề xuất):

SELECT * FROM sys.views 

Điều này cho phép tính thêm vào từng xem, không có sẵn từ sys.objects (trong đó có tài sản chung cho tất cả các loại của đối tượng) hoặc INFORMATION_SCHEMA.VIEWS. Mặc dù phương pháp INFORMATION_SCHEMA cung cấp định nghĩa khung nhìn ngoài hộp.

+0

Lỗi đối tượng -Invalid tên 'sys.views'. Tôi đã truy vấn chủ DB. – Steam

+0

@Steam đăng câu hỏi riêng. – Gili

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

Cố gắng tránh sử dụng các "sys.objects" chung - sử dụng các quan điểm cụ thể hơn thay vì - 'sys.views' –

3

Chạy thêm DatabaseName này ở nơi điều kiện.

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

hoặc xóa nơi sử dụng điều kiện bổ sung.

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

Nguồn: http://blog.sqlauthority.com/2010/10/29/sql-server-list-of-all-the-views-from-database/ – MikeTeeVee

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

Một thời gian bạn cần phải truy cập với schema tên, như một ví dụ bạn đang sử dụng cơ sở dữ liệu AdventureWorks bạn cần truy cập với các lược đồ.

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

Bằng cách hữu ích hơn nhiều so với tiêu chuẩn "sys.views" . Không phải tất cả mọi người đổ các bảng trong lược đồ DBO – Damian