检测 Sql-视图结构

Detect Sql-view structure

我创建了一个这样的视图

SELECT        dbo.BaharInOut.BCode, dbo.Bahar.BName
FROM            dbo.Bahar INNER JOIN
                     dbo.BaharInOut ON dbo.Bahar.BCode = dbo.BaharInOut.BCode

并尝试从 msSQL 获取信息

1-路 1

SELECT        COLUMN_NAME, TABLE_NAME
FROM            INFORMATION_SCHEMA.VIEW_COLUMN_USAGE AS VCU
WHERE        (VIEW_NAME = 'AAA')

答案是

COLUMN_NAME  TABLE_NAME
------------ -------------
BCode        Bahar
BName        Bahar
BCode        BaharInOut

如你所见,BCode重复了

2- 方式 2

SELECT Name
        FROM    sys.dm_exec_describe_first_result_set (N'SELECT *   from  AaA ', null, 1) 

结果更奇怪了

Name
--------
BCode
BName
BCode
Serial
MSeq

有什么想法吗?

在 Way2 中,只需使用“is_hidden”列添加简单的“where”

SELECT Name,source_column,source_table FROM sys.dm_exec_describe_first_result_set (N'SELECT * from AAA', null, 1) WHERE is_hidden=0