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