zoukankan      html  css  js  c++  java
  • 删除一行记录时修改相关字段数值

    SQL Server数据库,表 QuestionKinds有如下字段:
    KindID      自增量 
    KindName 
    KindOrder    问题种类显示的顺序号

    浏览数据时,使用,上下移动数据,修改,删除。

    删除一行记录的存储过程如下:

    CREATE PROCEDURE Pr_DeleteQuestionKind
    (
    @KindID int
    )
    AS
    DELETE
    QuestionKinds

    WHERE
    KindID = @KindID
    GO

    因测试中发现,删除记录后,KindOrder的数值之间 出现不连续现象,导致 上下移动按钮运行时,页面出现不移动现象。实际上,数据是移动的。不过,移动的量是 -1  +1.为改正此错误,现修改删除一行记录的存储过程如下:

    --2007-06-12  d修改 使  删除类别的时候,kindorder也跟着修改。既删除时,使所有比该KindOrder数值大的KindOrder都-1。

    CREATE PROCEDURE Pr_DeleteQuestionKind
    (
    @KindID int
    )
    AS

    DECLARE @UpdateOrder int

    SET  @UpdateOrder =
    (
    SELECT
    KindOrder
           
    FROM
    QuestionKinds
           
    WHERE
    KindID = @KindID
    )

    UPDATE
    QuestionKinds
            
    SET
    KindOrder =KindOrder-1
    where KindOrder>@UpdateOrder

    DELETE
    QuestionKinds

    WHERE
    KindID = @KindID
    GO

  • 相关阅读:
    Redis基础
    MySQL基础
    MySQL基础
    MySQL基础
    MySQL基础
    Hello 博客园
    Linux | 常用命令
    JVM | 性能调优
    JVM | 垃圾回收
    学习笔记 | 分布式技术
  • 原文地址:https://www.cnblogs.com/flashicp/p/780430.html
Copyright © 2011-2022 走看看