Sql Query для вывода списка всех представлений в базе данных SQL Server 2005 - PullRequest
46 голосов
/ 25 мая 2010

Мне нужен SQL-запрос для перечисления всех представлений (мне нужны только имена представлений) конкретной базы данных в SQL Server 2005. Заранее спасибо!

Ответы [ 7 ]

88 голосов
/ 25 мая 2010

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

SELECT * FROM sys.views

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

11 голосов
/ 31 октября 2012
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
8 голосов
/ 25 мая 2010
SELECT  *
FROM    sys.objects
WHERE   type = 'V'
3 голосов
/ 29 января 2014
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'
3 голосов
/ 25 мая 2010

Запустите это добавление 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 
2 голосов
/ 05 октября 2014

Иногда вам нужно получить доступ с именем schema, например, вы используете базу данных AdventureWorks, к которой вам нужен доступ со схемами.

 SELECT s.name +'.'+v.name FROM sys.views v inner join sys.schemas s on s.schema_id = v.schema_id 
0 голосов
/ 14 июня 2019

Necromancing.

Поскольку вы сказали, что ВСЕ представления технически, все ответы на сегодняшний день НЕПРАВИЛЬНЫ.
Вот как можно получить ВСЕ просмотры:

SELECT 
     sch.name AS view_schema 
    ,sysv.name AS view_name 
    ,ISNULL(sysm.definition, syssm.definition) AS view_definition 
    ,create_date 
    ,modify_date 
FROM sys.all_views AS sysv 

INNER JOIN sys.schemas AS sch 
    ON sch.schema_id = sysv.schema_id 

LEFT JOIN sys.sql_modules AS sysm 
    ON sysm.object_id = sysv.object_id 

LEFT JOIN sys.system_sql_modules AS syssm 
    ON syssm.object_id = sysv.object_id 

-- INNER JOIN sys.objects AS syso ON syso.object_id = sysv.object_id 

WHERE (1=1) 
AND (sysv.type = 'V') -- seems unnecessary, but who knows
-- AND sch.name = 'INFORMATION_SCHEMA' 
/*
AND sysv.is_ms_shipped = 0  
AND NOT EXISTS 
(
    SELECT * FROM sys.extended_properties AS syscrap
    WHERE syscrap.major_id = sysv.object_id
    AND syscrap.minor_id = 0 
    AND syscrap.class = 1 
    AND syscrap.name = N'microsoft_database_tools_support' 
)  
*/

ORDER BY 
     view_schema 
    ,view_name 
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...