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

lpf*_*pfy 6 sql t-sql sql-server-2005 view

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

例如:

名为viewC,create by的视图tbl1 inner join tbl2包含a,b,c,d列(a,b来自tbl1c,d来自tbl2).

如何

Select COLUMN_NAME, DATA_TYPE, column_default, character_maximum_length, sourceTableNAME 
FROM information_schema.columns 
where table_name='viewC'
Run Code Online (Sandbox Code Playgroud)

一起?

Ed *_*per 11

此信息可从以下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>'
Run Code Online (Sandbox Code Playgroud)

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

  • 这显示列名和表名是.但是我不会播下在我的情况下需要的别名. (2认同)