科研管理系统课程设计论文内容摘要:

S DECLARE @课题编号 char(10) //课题和立项 表主键 DECLARE @课题性质 char(10) SET @课题性质 =(SELECT 课题性质 FROM INSERTED) //在系统表 INSERTED中选出课题性质 IF @课题性质 =39。 自然科学 39。 //根据课题性质得到课题立项总得分 BEGIN UPDATE 课题和立项 //更新课题和立项表 SET 课题立项总得分 =39。 10039。 END ELSE IF @课题性质 =39。 软科学 39。 BEGIN UPDATE 课题和立项 SET 课题立项总得分 =39。 9039。 END ELSE IF @课题性质 =39。 社会科学 39。 BEGIN UPDATE 课题和立项 SET 课题立项总得分 =39。 8039。 END 存储过程 ( 1)撰写论文存储过程 CREATE procedure 撰写论文 @员工编号 int //定义标量变量 as begin declare @论文得分 int //声明各个变量及类型 declare @论文参加人数 int declare @论文个人得分 int declare @刊物级别 char(50) declare @论文分工 char(50) declare @姓名 char(50) declare @论文编号 int 12 select @刊物级别 =刊物级别 from 论文 a,撰写 b where =@员工编号 and 编号 = select @论文分工 =论文分工 from 撰写 a where =@员工编号 select @论文参加人数 =count(论文编号 ) from 撰写 where 论文编号 =(select 论文编号 from 撰写 where 员工编号 =@员工编号 ) select @姓名 =姓名 from 教职员工 a,撰写 b where =@员工编号 and = //选择出各个变量并根据标量变量连接设置值 begin if @刊物级别 =39。 核心期刊 39。 set @论文得分 =100 else if @刊物级别 =39。 一般期刊 39。 set @论文得分 =90 else if @刊物级别 =39。 报纸杂志 39。 set @论文得分 =80 else if @刊物级别 =39。 会议论文 39。 set @论文得分 =70 begin if @论文分工 =39。 主持人 39。 set @论文个人得分 =@论文得分 * else if @论文分工 =39。 参加人 39。 set @论文个人得分 =(@论文得分 *) else if @论文分工 =39。 参加人 39。 set @论文个人得分 =(@论文得分 *) end end end begin print 39。 员工编号: 39。 +str(@员工编号 )+39。 姓名: 39。 +@姓名 +39。 论文个人得分为: 39。 +str(@论文个人得分 ,5,1) //输出结果 end ( 2)发表著作存储过程 CREATE procedure 发表著作 @员工编号 int //定义标量变量 as begin declare @著作得分 int //声明各个变量及类型 declare @著作分工 char(10) declare @著作个人得分 int declare @著作类别 char(10) declare @姓名 char(50) set @著作类别 =(select top 1 著作类别 from 著作 a,发表 b where = and =@员工编号 ) set @著作分工 =(select top 1 著作分工 from 发表 a where =@员工编号 ) set @姓名 =(select top 1 姓名 from 教职员工 a where =@员工编号 ) begin //选择出各个变量并根据标量变量连接设置值 if @著作类别 =39。 专著 39。 set @著作得分 =100 else if @著作类别 =39。 编著 39。 set @著作得分 =90 else if @著作类别 =39。 教材 39。 13 set @著作得分 =80 else set @著作得分 =70 begin if @著作分工 =39。 主持人 39。 set @著作个人得分 =@著作得分 * else if @著作分工 =39。 参加人 39。 set @著作个人得分 =(@著作得分 *) else if @著作分工 =39。 参加人 39。 set @著作个人得分 =(@著作得分 *) end end end begin select result= 39。 员工编号 39。 +str(@员工 编号 )+39。 姓名 39。 +@姓名 +39。 著作分工是 39。 +@著作分工 +39。 著作得分为: 39。 +str(@著作个人得分 ,5,1) end //输出结果 ( 3)发明专利存储过程 CREATE procedure 发明专利 @员工编号 int //定义标量变量 as begin declare @专利个人得分 int //声明各个变量及类型 declare @专利得分 int declare @专利类型 char(50) declare @专利分工 char(50) declare @专利参加人数 int declare @姓名 char(50) set @专利类型 =(select top 1 专利类型 from 专利 a,发明 b where =@员工编号 and = ) set @专利分工 =(select top 1 专利分工 from 专利 a,发明 b where =@员工编号 and = ) set @专利参加人数 =(select top 1 count(专利编号 ) from 发明 a where 专利编号 in (select 专利编号 from 发明 b where 员工编号 =@员工编号 )) set @姓名 =(select top 1 from 教职员工 a,专利 b,发明 c where =工编号 and = and =@员工编号 ) begin //选择出各个变量并根据标量 变量连接设置值 if @专利类型 =39。 发明 39。 set @专利得分 =100 else if @专利类型 =39。 实用新型 39。 set @专利得分 =90 else set @专利得分 =80 begin if @专利分工 =39。 主持人 39。 set @专利个人得分 =@专利得分 * else set @专利个人得分 =@专利得分 * 14 end end select result= 39。 员工编号: 39。 +str(@员工编号 )+39。 姓名: 39。 +@姓名 +39。 专利分工 39。 +@专利分工 +39。 专利个人得分为: 39。 +str(@专利个人得分 ,5,1) end //输出结果 数据库系统 调试情况 调试存储过程遇到的问题 以 撰写论文 为例 消息 512,级别 16,状态 1,过程 p_scoreconvert1,第 11 行 子查询返回的值不止一个。 当子查询跟随在 =、 !=、 、 =、 、 = 之后,或子查询用作表达式时,这种情况是不允许的。 由于 源代码中 select 论文分工 from 撰写 a where =@员工编号 ) 这里面返回了不止一个值 ,而代码中用 一个变量 =一个结果集了,所以出错了。
阅读剩余 0%
本站所有文章资讯、展示的图片素材等内容均为注册用户上传(部分报媒/平媒内容转载自网络合作媒体),仅供学习参考。 用户通过本站上传、发布的任何内容的知识产权归属用户或原始著作权人所有。如有侵犯您的版权,请联系我们反馈本站将在三个工作日内改正。