我想写个程序,知道一个select语句中,每一个列最终映射到哪个表,哪个列有人和我说可以用执行计划来分析,但我拿到执行计划之后发现SELECT语句中的列可以有别名,执行计划中没有
SELECT语句中的列有自己写的顺序,执行计划是按照表、以及每个表中的列的顺序来排列的于是这个程序就卡住了。有谁能告诉我有啥好办法来解决这个问题么?SQL查询执行计划别名顺序

解决方案 »

  1.   

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

  2.   

    嗯,是蛮智能的呀,本来是用文本分析的方式去做的...但文本分析有个很大的障碍就是遇到视图就不行了...所以才打算用执行计划,但执行计划的顺序又不匹配...除非写SQL的人不用AS,并且全部安装表里面的列顺序来写SQL,不然就搞不定。
      

  3.   

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