create proc questionanswer @level int,@uno char(5) as begin declare @temp table(qno char(3)) insert into @temp exec levelchoose @level update Question set qcnt=qcnt+1 where qno in (select qno from @temp) declare @tno char(7) if not exists(select * from Testrecord) begin insert into Testrecord values('0000001',@uno,getdate(),0) end else begin select @tno=max(tno)+1 from Testrecord insert into Testrecord values(@tno,@uno,getdate(),0) end -- 添加以下SELECT语句来返回结果集 select qno from @temp end 为什么不能对表进行修改
时间: 2024-03-23 12:43:56 浏览: 74
Mysql:The user specified as a definer ('xxx@'%') does not exist的解决方案
5星 · 资源好评率100%
这段代码中出现了错误是因为在存储过程中的SELECT语句只返回了结果集,但并没有返回任何修改操作。在存储过程中,如果要对表进行修改,需要使用EXECUTE语句来执行相应的修改操作。
例如,如果要执行UPDATE操作,则需要将UPDATE语句放在EXECUTE语句中,如下所示:
```
EXECUTE ('UPDATE Question SET qcnt=qcnt+1 WHERE qno IN (SELECT qno FROM @temp)')
```
同样,如果要执行INSERT操作,则需要将INSERT语句放在EXECUTE语句中,如下所示:
```
EXECUTE ('INSERT INTO Testrecord VALUES (''0000001'',@uno,GETDATE(),0)')
```
需要注意的是,在EXECUTE语句中,字符串需要使用两个单引号来表示。
阅读全文