代码之家  ›  专栏  ›  技术社区  ›  Aging Hippie

SQL Server“快捷方式”处理

  •  0
  • Aging Hippie  · 技术社区  · 6 年前

    这是我试图解决的问题的简化版本。

    我有一张临时桌子 #MyData 有两列: description value .

    MyRuleSequenceCollection , MyRuleSequence MyRule ,我想用它来评估临时表中的数据。 我的规则序列 记录,以及 MyRuleSequenceCollection集合 是一个无序的 记录。

    临时表包含:

    A  20
    B  5

    结果:所有4项规则均已评估,最终结果 true

    临时表包含:

    A   20
    B   0

    结果:只运行前3条规则,没有被0除的错误,最终结果 false

    临时表包含:

    B   20
    C   5

    结果:仅运行第一个规则,最终结果为false

    所以我在寻找设计建议。考虑到以上只是一个例子(许多情况要复杂得多),这个过程可以设计成避免游标或动态SQL吗?递归能解决问题吗?

    更新:几天没有任何建议或意见。有人对用CTE做这个有什么看法吗?或者这只是一个为您处理了释放的游标?

    1 回复  |  直到 6 年前
        1
  •  0
  •   Aging Hippie    6 年前

    有时,除了使用数据库游标之外,真的没有其他有效的选择。

    我就是这么做的。它工作正常,性能和资源使用合理。这是一个firehose-forward-only local static,不锁定所有我能想到的加速游标的东西,如果我以后有性能问题,我可以将几个连接/别名表(3个表被连接/别名10次)子集到一个表变量中,并在游标中使用它来进一步加速。

    我不禁要问,为什么自动厌恶光标是如此强烈,即使在一个情况下,没有一个务实的选择。