【问题标题】:SQL Business Logic Wanted需要 SQL 业务逻辑
【发布时间】:2009-02-16 17:45:57
【问题描述】:

我正在寻找具有业务逻辑的大型、纯可读且不支持的 SQL 脚本。我需要一些夸张的东西来说明代码与 SQL 业务逻辑。你有吗?

更新:我正在寻找糟糕的 SQL 示例。我不是在寻找这些风格的业务逻辑的比较。可能是你开始继承可怕的 SQL 逻辑的任务,你可以分享它。这可能是荒谬的、有趣的或类似的。其实,逻辑不是必需的,查询也可以。

【问题讨论】:

  • 所以您想要编写糟糕的 SQL 脚本示例来证明 SQL 中的业务逻辑不好?这就像要求法语不好的例子来证明英语是一种更好的语言!
  • 我同意托尼的观点。如果你想对这两个选项做一个公平的介绍,也许可以展示这两个选项的 good 例子......你可以用任何语言编写 cr@p......
  • 你为什么不要求一个好的例子,如果你看不到 - 你可以断定它可能不存在
  • 不,不,伙计们,我已经有编写错误代码的示例,现在我正在寻找 SQL。我的目的不是要开始另一场圣战,只是为了说明。

标签: sql


【解决方案1】:

任何带有触发器的东西。它们将代码隐藏在意想不到的地方,并产生难以调试的副作用。当然,触发器有它们的位置,但您绝对需要谨慎使用它们。

【讨论】:

  • 我也不喜欢触发器......很高兴我不是唯一一个。
  • 我确实知道利弊,但我没有编写自己的糟糕代码示例,而是寻找现有的。
  • 有一次我继承了一个项目,程序员使用触发器来实现 SQL Server 通过“ON DELETE CASCADE”免费提供的功能。 叹息
【解决方案2】:

公平的比较会显示代码与 sql 中的相同业务逻辑

其他任何事情都是将苹果与橙子进行比较——或者更糟糕的是,堆叠牌组以支持已成定局

【讨论】:

  • 你有例子来说明这一点吗?
【解决方案3】:

用糟糕的 SQL 来证明你的观点是行不通的,因为它不能证明除了人们可以编写糟糕的 SQL 之外的任何东西。可能存在与您想要证明的完全相反的错误代码。

您可能需要考虑描述现有开发团队的能力。如果编码是他们的强项而不是 SQL,那么这就是应该采取的路线。

【讨论】:

    【解决方案4】:

    我发布了一些我在现实世界中遇到的讨厌的 SQL:

    Embedding UI Logic in stored procedures

    A sorry excuse for a database search(该帖子底部附近)

    也许一个更简单的例子是使用游标来执行可以使用基本 SQL 更容易完成的功能。例如,将使用 WHERE 或 GROUP BY 子句的简单查询与使用游标实现相同功能的存储过程进行比较。

    【讨论】:

    • 据我所知,使用游标的唯一原因是模仿 sql 中的 FOR 循环,您如何使用“使用 WHERE 或 GROUP BY 子句的简单查询”来做到这一点?
    • 通过对当前行的列使用条件语句
    • @Beds:我将如何执行以下操作:从表中选择 100 行,对于每一行 - 将一些列插入到不同的表中,获取 SCOPE_IDENTITY(),然后将其与一些初始选择中的其他列到第三个表中?
    • @rm:cmets 不是讨论您的问题的好地方。开始一个新问题或咨询预言机:tinyurl.com/djftvy
    • @Princess:我只是想弄清楚如何在没有光标的情况下在 sql 中模拟 FOR 循环
    猜你喜欢
    • 2011-12-22
    • 1970-01-01
    • 2021-03-28
    • 2017-08-11
    • 1970-01-01
    • 1970-01-01
    • 2012-02-09
    • 2010-12-18
    • 1970-01-01
    相关资源
    最近更新 更多