2010-05-25 3 views

ответ

55

Чтобы закончить отправляемся (с тем, что уже было предложено):

SELECT * FROM sys.views 

Это дает дополнительные свойства на каждом представлении, не доступные из sys.objects (который содержит свойства, общие для всех типов объекта) или INFORMATION_SCHEMA.VIEWS. Хотя подход INFORMATION_SCHEMA предоставляет определение вида «из коробки».

+0

Error -Invalid имя объекта«sys.views». Я обращался к мастер-БД. – Steam

+0

@Steam сообщение отдельный вопрос. – Gili

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

Старайтесь избегать использования общих «sys.objects» - использовать более конкретные взгляды вместо - 'sys.views' –

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

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

Смежные вопросы