从SQL Query中提取表名

时间:2014-11-05 12:19:20

标签: sql-server tsql names

我从一个程序中提取了一些自动生成的TSQL,并且在查询的FROM部分内,对各种表格有一百万(略微过分夸大)JOINS

很多是重复但具有不同的别名,例如table1table1_1table1_2等等 有没有一种方法或工具只能在聚合级别列出表名,这样我才能确切地看到正在使用哪些表? 例如在上面的示例中,我只想看到table1列出。

1 个答案:

答案 0 :(得分:2)

使用sp_describe_first_result_set和t @ browse_information_mode = 1返回查询元数据,如下例所示。要获取聚合信息,请将这些结果插入临时表或表变量并进行查询以获取所需信息。结果表架构在联机丛书(http://msdn.microsoft.com/en-us/library/ff878602.aspx)中进行了描述。

EXEC sp_describe_first_result_set 
    @tsql = N'
        SELECT t1.column_1, c.name
        FROM dbo.table_1 AS t1
        JOIN dbo.table_2 AS t2 ON
            t2.column_1 = t1.column_1'
    ,@params = NULL
    ,@browse_information_mode = 1;