我一直认为SQL编译器会破坏,但显然nesing几乎可以无限。这个代码是立即被破坏还是有一些希望,这样的东西可以起作用吗?
此查询并不属于我,所以我无法发布...但是我们只是假装它是this one:
[SELECT /*+ NOPARALLEL bypass_recursive_check */
SP_ALIAS_190,
((CASE SP_ALIAS_191
WHEN 1
THEN 'PROVIDER::ALL_PROV::'
WHEN 0]
答案 0 :(得分:8)
显然,您从未见过来自Sharepoint DAL的SQL。
答案 1 :(得分:7)
如果查询是由工具(或代码)生成的,那么维护它可能相对简单(在某种意义上,查询生成代码实际上可能写得很好并且可以维护)
答案 2 :(得分:2)
我最近遇到了与此类似的问题,我通过考虑以下几个问题做出决定:
当然,管理层必须做出政治决策,冒险解释为什么最近创建的东西必须重写。
最后(对我来说),找+替换是我的朋友。
答案 3 :(得分:1)
使用WITH语句重构它。 添加很多很多评论。
如果你把它分成可以管理的部分,你就会有更好的机会。
答案 4 :(得分:1)
如果它包含了大量的嵌套,我会说不。
就像任何代码一样,无论使用何种语言,你都应该只考虑重写它,因为你可以使它更有效或更容易理解。
根据我的经验,我已经能够将写得不好的SQL减少到其大小的4到5倍,并且其性能提高了很多倍,因为原始人真的不知道。
答案 5 :(得分:1)
如果您认为这很糟糕,您应该看到Industrial Logic的代码视频示例:Technical Debt。绝对不是自动生成的。
答案 6 :(得分:0)
是否可以在C#中维护43页功能?答案很明显;)。我无法想象这一点。如果我是你,我会把它分成更小的部分。
答案 7 :(得分:0)
两件事:
如果您有43页查询,并且对前两个问题的回答是肯定的,欢迎使用SharePoint开发