请教,怎样让SELECT语句中的列与执行计划中的列一一对应起来?

时间:2021-09-12 11:41:17
我想写个程序,知道一个select语句中,每一个列最终映射到哪个表,哪个列

有人和我说可以用执行计划来分析,但我拿到执行计划之后发现

SELECT语句中的列可以有别名,执行计划中没有
SELECT语句中的列有自己写的顺序,执行计划是按照表、以及每个表中的列的顺序来排列的

于是这个程序就卡住了。

有谁能告诉我有啥好办法来解决这个问题么?

10 个解决方案

#1


该回复于2013-03-28 17:10:53被版主删除

#2


你右键那个执行计划里面的图标,然后选择属性,在右边窗口有更详细的信息,里面有别名和列名的

#3


另外除非你的查询中每个表都有大量的列且都要查出来,不然不会很难看啊。一般每个表其实就用到5、6个列而已,你熟悉表结构的话应该了然于心

#4


版主大人,我现在想做的是一个自动识别的过程,每天要识别上千句的SQL,而不是肉眼识别...
属性里面的列名是和xml里面的列名一致的...一无别名二顺序与SQL文不一致,也就是程序识别不了的...

#5


引用 4 楼 alextsln 的回复:
版主大人,我现在想做的是一个自动识别的过程,每天要识别上千句的SQL,而不是肉眼识别...
属性里面的列名是和xml里面的列名一致的...一无别名二顺序与SQL文不一致,也就是程序识别不了的...
请教,怎样让SELECT语句中的列与执行计划中的列一一对应起来?自动化对比?那太高智能了。你怎么可能自动化实现啊?这些需要人脑分析的,

#6


嗯,是蛮智能的呀,本来是用文本分析的方式去做的...但文本分析有个很大的障碍就是遇到视图就不行了...

所以才打算用执行计划,但执行计划的顺序又不匹配...除非写SQL的人不用AS,并且全部安装表里面的列顺序来写SQL,不然就搞不定。

#7


引用 6 楼 alextsln 的回复:
嗯,是蛮智能的呀,本来是用文本分析的方式去做的...但文本分析有个很大的障碍就是遇到视图就不行了...

所以才打算用执行计划,但执行计划的顺序又不匹配...除非写SQL的人不用AS,并且全部安装表里面的列顺序来写SQL,不然就搞不定。
我觉得你花时间去找找有没有第三方软件更加实际。这个太专业了。

#8


该回复于2013-03-28 17:47:30被版主删除

#9


版主你说对了,最后还是决定做文本分析...不过不是第三方的,是微软的,打算用ScriptDom作解析器,列出顶层查询的别名表,建立查询中每个查询列、表与子查询的别名字典,然后一层一层分析下去,最后再和执行计划作比较,视图的问题只好先放着再说了...

#10


楼主  你最终是怎么解决的

#1


该回复于2013-03-28 17:10:53被版主删除

#2


你右键那个执行计划里面的图标,然后选择属性,在右边窗口有更详细的信息,里面有别名和列名的

#3


另外除非你的查询中每个表都有大量的列且都要查出来,不然不会很难看啊。一般每个表其实就用到5、6个列而已,你熟悉表结构的话应该了然于心

#4


版主大人,我现在想做的是一个自动识别的过程,每天要识别上千句的SQL,而不是肉眼识别...
属性里面的列名是和xml里面的列名一致的...一无别名二顺序与SQL文不一致,也就是程序识别不了的...

#5


引用 4 楼 alextsln 的回复:
版主大人,我现在想做的是一个自动识别的过程,每天要识别上千句的SQL,而不是肉眼识别...
属性里面的列名是和xml里面的列名一致的...一无别名二顺序与SQL文不一致,也就是程序识别不了的...
请教,怎样让SELECT语句中的列与执行计划中的列一一对应起来?自动化对比?那太高智能了。你怎么可能自动化实现啊?这些需要人脑分析的,

#6


嗯,是蛮智能的呀,本来是用文本分析的方式去做的...但文本分析有个很大的障碍就是遇到视图就不行了...

所以才打算用执行计划,但执行计划的顺序又不匹配...除非写SQL的人不用AS,并且全部安装表里面的列顺序来写SQL,不然就搞不定。

#7


引用 6 楼 alextsln 的回复:
嗯,是蛮智能的呀,本来是用文本分析的方式去做的...但文本分析有个很大的障碍就是遇到视图就不行了...

所以才打算用执行计划,但执行计划的顺序又不匹配...除非写SQL的人不用AS,并且全部安装表里面的列顺序来写SQL,不然就搞不定。
我觉得你花时间去找找有没有第三方软件更加实际。这个太专业了。

#8


该回复于2013-03-28 17:47:30被版主删除

#9


版主你说对了,最后还是决定做文本分析...不过不是第三方的,是微软的,打算用ScriptDom作解析器,列出顶层查询的别名表,建立查询中每个查询列、表与子查询的别名字典,然后一层一层分析下去,最后再和执行计划作比较,视图的问题只好先放着再说了...

#10


楼主  你最终是怎么解决的