Tôi cần một truy vấn sql để liệt kê tất cả các khung nhìn (tôi chỉ cần tên hiển thị) của một cơ sở dữ liệu cụ thể trong SQL Server 2005. Cảm ơn trước!Sql Truy vấn để liệt kê tất cả các khung nhìn trong cơ sở dữ liệu SQL Server 2005
Trả lời
Để 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.
SELECT *
FROM sys.objects
WHERE type = 'V'
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' –
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
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
Nguồn: http://blog.sqlauthority.com/2010/10/29/sql-server-list-of-all-the-views-from-database/ – MikeTeeVee
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'
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
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
Lỗi đối tượng -Invalid tên 'sys.views'. Tôi đã truy vấn chủ DB. – Steam
@Steam đăng câu hỏi riêng. – Gili