一尘不染

如何列出VIEW中的列的源表名称(SQL Server 2005)

sql

只是想知道如何在一个视图查询中列出列名和表名。

例如:

名为viewC,创建者tbl1 inner join tbl2,的视图包含a,b,c,d列(a,bfromtbl1c,dfrom
tbl2)。

如何

Select COLUMN_NAME, DATA_TYPE, column_default, character_maximum_length, sourceTableNAME 
FROM information_schema.columns 
where table_name='viewC'

一起?


阅读 133

收藏
2021-03-10

共1个答案

一尘不染

这些信息可从以下INFORMATION_SCHEMA视图获得:

SELECT * 
FROM    INFORMATION_SCHEMA.VIEW_COLUMN_USAGE AS cu
JOIN    INFORMATION_SCHEMA.COLUMNS AS c
ON      c.TABLE_SCHEMA  = cu.TABLE_SCHEMA
AND     c.TABLE_CATALOG = cu.TABLE_CATALOG
AND     c.TABLE_NAME    = cu.TABLE_NAME
AND     c.COLUMN_NAME   = cu.COLUMN_NAME
WHERE   cu.VIEW_NAME    = '<your view name>'
AND     cu.VIEW_SCHEMA  = '<your view schema>'

如果您的视图包含来自多个数据库的表,则查询将变得更加复杂

2021-03-10