qq_59786674 2022-05-29 20:15
浏览 90
已结题

SQL数据库的事务设计问题

设计一个事务,给所有在册的非新生学生增加1岁。要求:50人作为一个事务提交一次
BEGIN TRANSACTION

USE JZLjiaoxuedb
GO
DECLARE i_cursor CURSOR KEYSET FOR SELECT * FROM student
DECLARE @step int
OPEN i_cursor
DECLARE @sno char(6),@sn char(8),@sex char(2),@age tinyint,@dept char(10),@Native char(40),@id_sc int
SET @step=0
FETCH NEXT FROM i_cursor INTO @sno,@sn,@sex,@age,@dept,@Native,@id_sc
SELECT @sno AS Sno,@sn AS Sname,@sex AS Sex,@age AS Age,@dept AS Dept,@Native AS native,@id_sc AS ID_SC
WHILE @@FETCH_STATUS=0
BEGIN
SET @step=@step+1
UPDATE student SET Age=Age+1 WHERE @sno=Sno AND Age>18
IF(@@ERROR<>0) ROLLBACK TRANSACTION
IF(@step=50)
BEGIN
COMMIT
SET @step=0
END
FETCH NEXT FROM i_cursor INTO @sno,@sn,@sex,@age,@dept,@Native,@id_sc
END
GO
CLOSE i_cursor
DEALLOCATE i_cursor

消息显示多行受到影响,但结果只出现一行数据,表也打不开了
有人说是死循环,请问该怎么解决
  • 写回答

0条回答 默认 最新

    报告相同问题?

    问题事件

    • 系统已结题 6月6日
    • 创建了问题 5月29日

    悬赏问题

    • ¥15 一道ban了很多东西的pyjail题
    • ¥15 关于#r语言#的问题:如何将生成的四幅图排在一起,且对变量的赋值进行更改,让组合的图漂亮、美观@(相关搜索:森林图)
    • ¥15 C++识别堆叠物体异常
    • ¥15 微软硬件驱动认证账号申请
    • ¥15 有人知道怎么在R语言里下载Git上的miceco这个包吗
    • ¥15 GPT写作提示指令词
    • ¥20 根据动态演化博弈支付矩阵完成复制动态方程求解和演化相图分析等
    • ¥20 关于DAC输出1.000V对分辨率和精度的要求
    • ¥15 华为超融合部署环境下RedHat虚拟机分区扩容问题
    • ¥15 哪位能做百度地图导航触点播报?