SQL Server 2005の特定のデータベースのすべてのビューを列挙するには、SQLクエリが必要です(ビュー名のみが必要です)。
(すでに提案されているものを使用して)セットを終了するには:
SELECT * FROM sys.views
これにより、sys.objects(すべてのタイプのオブジェクトに共通のプロパティを含む)またはINFORMATION_SCHEMA.VIEWSからは使用できない、各ビューに追加のプロパティが提供されます。 INFORMATION_SCHEMAアプローチは、すぐに使用できるビュー定義を提供します。
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
SELECT *
FROM sys.objects
WHERE type = 'V'
Where条件で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
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'
schema
名でアクセスする必要がある場合があります。AdventureWorksデータベースを使用している例として、スキーマでアクセスする必要があります。
SELECT s.name +'.'+v.name FROM sys.views v inner join sys.schemas s on s.schema_id = v.schema_id
ネクロマンシング。
あなたはすべての意見を言ったので、技術的には、これまでのすべての答えは間違っています。
すべてのビューを取得する方法は次のとおりです。
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