2014-11-05 53 views
0

我已经从程序中提取了一些自动生成的TSQL,并且在查询的FROM部分中有一百万个(稍微夸张的)JOINS到各种表。从TSQL中提取表名查询

许多重复但具有不同的别名,例如, table1,table1_1,table1_2等等 有没有一种方法或工具,只会列出我在聚合级别的表名,所以我可以确切地看到哪些表正在使用? 例如在上面的例子中,我只想看到table1列出。

+0

怎么样查询编辑器Ctrl + Shift + Q? – 2014-11-05 13:13:05

+1

如果你可以提取别名,为什么你不能提取表名?他们将永远在别名之前。 – 2014-11-05 13:18:51

+1

哇@MitchWheat我猜你的父母曾经给你带来任何礼节。我认为这是一个友好的论坛,但考虑到你对我的问题的回应,你显然不愿意侮辱他人。正如我的用户名所示,我是SQL新手,所以我认为如果我的知识不像你的上帝那样与地位一致。 – 2014-11-05 13:31:02

回答

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; 
+0

谢谢丹,我会给你一个去看看我如何继续。 – 2014-11-05 14:04:54