我从一个程序中提取了一些自动生成的TSQL,并且在查询的FROM
部分内,对各种表格有一百万(略微过分夸大)JOINS
。
很多是重复但具有不同的别名,例如table1
,table1_1
,table1_2
等等
有没有一种方法或工具只能在聚合级别列出表名,这样我才能确切地看到正在使用哪些表?
例如在上面的示例中,我只想看到table1
列出。
答案 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;