gpt4 book ai didi

sql - 处理这个 sql 逻辑的更好方法是什么?

转载 作者:行者123 更新时间:2023-12-02 21:16:40 25 4
gpt4 key购买 nike

在存储过程内部,我填充了一个项目表 (#Items)。只是有关他们的基本信息。然而,对于每件商品,我需要确保我可以出售它们,为了做到这一点,我需要执行大量的验证。为了保持存储过程的可维护性,我将逻辑移至另一个存储过程中。

为临时表中的每个项目调用存储过程的最佳方法是什么?

按照我现在的方式,我应用一个标识列,然后执行一个 while 循环,为每行执行存储过程并将验证结果插入到临时表中。 (#验证)

但是现在逻辑已经改变,在 #Items 的创建和循环的执行之间,一些记录被删除,这会搞乱 while 循环,因为 Identity 不再等于计数器。

我可以通过删除标识列并在 while 循环之前重新应用它来处理这个问题,但我只是想知道是否有更好的方法。如果我应用 order by 子句,有没有办法获取索引处的特定行?

我知道我可以做一个光标,但这对我来说是一件痛苦的事情。另外,性能也是一个问题,快进只读游标会比 while 循环更好吗? #Items 表中的行数并不算多,最多可能有 50 行,但存储过程的调用会相当频繁。

最佳答案

  1. 将验证存储过程转换为用户定义的函数,该函数接受项目 ID 或验证项目记录所需的数据列
  2. 创建临时表
  3. 插入您的所有项目
  4. 为临时表编写一个删除查询,在 WHERE 子句中调用新的 UDF。

关于sql - 处理这个 sql 逻辑的更好方法是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1143910/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com