sqlserver2005存储过程问题,急

猿猿猿媛 2014-05-31 09:47:27
--存储过程
create procedure saveCourse
@v_sno varchar(15), --定义两个输入参数
@v_cno varchar(6),
@num int output --定义个返回值
as
begin
select @num=remain from course where cno=v_cno;
if @num>0 then --如果人数大于0,则执行下面操作
insert into sc values(v_sno,v_cno);
update course set remain=remain-1 where cno=v_cno;
update register set number=number+1 where cno=v_cno;
end if;
end saveCourse;


执行报错


麻烦大家帮我看看语法哪里出错了。
我之前只学过oracle的pl/sql,现在课程设计要求用sqlserver2005
我是想用这个存储过程实现多表的crud,如果返回的num结果是<0,则执行不成功

...全文
110 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
习惯性蹭分 2014-06-01
  • 打赏
  • 举报
回复
mssql的语法应该如下:

--存储过程
create procedure saveCourse
@v_sno varchar(15), --定义两个输入参数
@v_cno varchar(6),
@num int output  --定义个返回值
as
begin
select @num=remain from course where cno=v_cno;  --你这里是不是要用 @v_cno 参数
if @num>0   --如果人数大于0,则执行下面操作   if 条件begin .... end
begin 
insert into sc values(v_sno,v_cno);  ---这里也是  @v_sno,@v_cno 
update course set remain=remain-1 where cno=v_cno;   --你这里是不是要用 @v_cno 参数  
update register set number=number+1 where cno=v_cno; --你这里是不是要用 @v_cno 参数
end  
end  
kevin87923 2014-06-01
  • 打赏
  • 举报
回复
if 条件 begin ... end
insert into sc values(v_sno,v_cno);   v_sno,v_cno这两值哪来的 
猿猿猿媛 2014-06-01
  • 打赏
  • 举报
回复
引用 2 楼 tangguangqiang 的回复:
mssql的语法应该如下:

--存储过程
create procedure saveCourse
@v_sno varchar(15), --定义两个输入参数
@v_cno varchar(6),
@num int output  --定义个返回值
as
begin
select @num=remain from course where cno=v_cno;  --你这里是不是要用 @v_cno 参数
if @num>0   --如果人数大于0,则执行下面操作   if 条件begin .... end
begin 
insert into sc values(v_sno,v_cno);  ---这里也是  @v_sno,@v_cno 
update course set remain=remain-1 where cno=v_cno;   --你这里是不是要用 @v_cno 参数  
update register set number=number+1 where cno=v_cno; --你这里是不是要用 @v_cno 参数
end  
end  
谢谢,测试通过了,但是最后一条语句
update register set number=number+1 where cno=v_cno; --你这里是不是要用 @v_cno 参数
没有执行,请问怎么破
信息系统与数据库技术教学大纲全文共8页,当前为第1页。信息系统与数据库技术教学大纲全文共8页,当前为第1页。信息系统与数据库技术教学大纲 信息系统与数据库技术教学大纲全文共8页,当前为第1页。 信息系统与数据库技术教学大纲全文共8页,当前为第1页。 课程是以数据库技术为核心,融合信息管理、软件工程、程序开发等知识,用解剖麻雀式的教学和实践案例带领学习者快速了解从信息需求发现到信息系统分析、设计和实现的全过程,培养计算机综合应用能力。 课程概述 "互联网+"是信息技术和各行业领域结合的一种创新应用模式,每一个"互联网+"的背后都有一个信息系统。本课程是适应计算机基础教育的一门综合性公共基础课,通过介绍信息系统的核心支持技术,培养学生的信息应用意识和信息决策能力,提高领域创新应用的信息素养。 课程用面向系统的观点,以独特的课程体系融合信息管理、数据库技术、软件工程、程序设计等知识,使学生快速了解信息系统分析、设计、开发和运行管理的方法。 信息系统:学习信息系统概念、构成及应用特点,从而建立主动发现和利用信息的意识; 软件工程:学习项目管理的思想,了解信息系统构建过程,分析、设计、开发和管理方法; 数据库:这是信息系统的核心知识,掌握数据的组织、存储、管理和访问方法; 程序设计:学习使用编程语言访问数据库的一般流程,了解基于Web的信息系统应用程序的基本实现方法。 课程虽然知识集成度比较大,但是通过贯穿全课程的解剖麻雀式的教学、实践案例,用实例驱动学习,逐步递进,不需要死记硬背。 授课目标 这门课是一门IT技术的综合课程,通过关注信息系统实现的各环节方法和技术,希望学习者最后建立系统观点,对用信息系统支持自己的业务实现有基本的分析、判断和掌控能力。 非计算机专业的学生:锻炼你站在甲方的角度掌控系统规划、开发和管理,和作为乙方的IT技术人员密切配合。 信息系统与数据库技术教学大纲全文共8页,当前为第2页。信息系统与数据库技术教学大纲全文共8页,当前为第2页。计算机专业的学生:锻炼你贯通核心支持技术,用系统的观点设计系统和开发系统,充分理解作为甲方的用户立场和需求。 信息系统与数据库技术教学大纲全文共8页,当前为第2页。 信息系统与数据库技术教学大纲全文共8页,当前为第2页。 课程大纲 课程辅助资料 教学案例_教务信息系统 实验案例_网上书店 Visio绘图软件的使用方法 教材第6-9章 例题源码 教学进度安排和成绩分布 实验软件下载地址及安装说明 综合实践项目选题思维指导 教务系统案例程序源代码 全课程讲义 课程绪论 嗨,跟你聊聊这门课 第一周 信息系统基本知识 & 数据库基本知识 第一章 信息系统基本知识_章节导引 信息系统概述 信息系统的类型 信息系统案例简介 第二章 关系数据库基本知识_章节导引 数据模型概述 关系模型与关系数据库 信息系统与数据库技术教学大纲全文共8页,当前为第3页。信息系统与数据库技术教学大纲全文共8页,当前为第3页。 信息系统与数据库技术教学大纲全文共8页,当前为第3页。 信息系统与数据库技术教学大纲全文共8页,当前为第3页。 **关系数据库体系结构(别!第五章以后再学更易理解!) 关系模型的运算理论简介(别!第五章以后再学更易理解!) 第一周 讲义(信息系统基本知识 & 数据库基本知识) 单元测验:信息系统和数据库基本知识 第二周 关系数据库 创建与维护 第三章 数据库的创建与维护_章节导引 数据库管理系统SQL Server概述 数据库的创建与维护 数据表设计 数据表的创建与维护 第二周 讲义(数据库的创建与维护) 第二周 实验 关系数据库的创建 单元测验:关系数据库的创建和维护 关系数据库的创建和维护 第三周 关系数据库操作语言SQL(一) 第四章 SQL语言与可编程对象_章节导引 SQL语言概述 数据库定义语言DDL简介 数据操纵语言DML的查询语句SELECT——单表查询 第三周 讲义(SQL概述、DDL、SELECT单表查询) 第三周 实验 DDL脚本生成与Select语句单表查询 单元测验:DDL语句及Select语句单表查询 信息系统与数据库技术教学大纲全文共8页,当前为第4页。信息系统与数据库技术教学大纲全文共8页,当前为第4页。 信息系统与数据库技术教学大纲全文共8页,当前为第4页。 信息系统与数据库技术教学大纲全文共8页,当前为第4页。 第四周 关系数据库操作语言SQL(二) 数据操纵语言DML的查询语句SELECT——多表连接查询 数据操纵语言DML的更新语句INSERT、UPDATE、DELETE 第四周 讲义(SELECT多表查询、数据更新语句) 第四周 实验 Select多表查询和数据更新语句 单元测验:SELECT多表查询、数据更新语句 第五周 关系数据库操作语言SQL(

34,588

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server相关内容讨论专区
社区管理员
  • 基础类社区
  • 二月十六
  • 卖水果的net
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧