触发器问题,各位老大帮帮忙!

zhhcool123 2012-03-14 11:57:04
create procedure pro_new2
@ stuID char(6)=null
as
if
(@ stuID is null)
begin
select 学号,期中成绩 as'数学其中成绩'
from 学生成绩
where 课程号=1002
select 学号,期中成绩 as'数学其中成绩'
from 学生成绩
where 课程号=1002
end
else
begin
select 学号,期中成绩 as'数学其中成绩'
from 学生成绩
where 课程号=@ stuID and 课程号=1002
select 学号,期中成绩 as'数学其中成绩'
from 学生成绩
where 课程号=2005 and 学号=@ stuID
end
go


服务器: 消息 170,级别 15,状态 1,过程 pro_new2,行 2
第 2 行: 'char' 附近有语法错误。
服务器: 消息 137,级别 15,状态 1,过程 pro_new2,行 5
必须声明变量 '@'。
服务器: 消息 156,级别 15,状态 1,过程 pro_new2,行 14
在关键字 'else' 附近有语法错误。
服务器: 消息 137,级别 15,状态 1,过程 pro_new2,行 18
必须声明变量 '@'。
服务器: 消息 137,级别 15,状态 1,过程 pro_new2,行 21
必须声明变量 '@'。


我明明是有声明变量的啊,怎么老是提示没有声明呢?
...全文
78 5 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
zhhcool123 2012-03-14
  • 打赏
  • 举报
回复
非常感谢楼上的回答
  • 打赏
  • 举报
回复
@跟后面的名字不能分开
  • 打赏
  • 举报
回复


create procedure pro_new2
@stuID char(6)=null
as
if
(@stuID is null)
begin
select 学号,期中成绩 as'数学其中成绩'
from 学生成绩
where 课程号=1002
select 学号,期中成绩 as'数学其中成绩'
from 学生成绩
where 课程号=1002
end
else
begin
select 学号,期中成绩 as'数学其中成绩'
from 学生成绩
where 课程号=@stuID and 课程号=1002
select 学号,期中成绩 as'数学其中成绩'
from 学生成绩
where 课程号=2005 and 学号=@stuID
end
go

EnForGrass 2012-03-14
  • 打赏
  • 举报
回复
[Quote=引用 4 楼 chinajiyong 的回复:]

首先纠正一下这不是触发器,是存储过程

SQL code

create procedure pro_new2
@stuID char(6)=null
as
if
(@stuID is null)--空格
begin
select 学号,期中成绩 as '数学其中成绩'--空格
from 学生成绩
where 课程号=1002
select 学号,期中成绩 as '数学其中成绩'……
[/Quote]

create procedure pro_new2
@stuID char(6)=null
as
if
(@stuID is null)--空格
begin
select 学号,期中成绩 as '数学其中成绩'--空格
from 学生成绩
where 课程号=1002
select 学号,期中成绩 as '数学其中成绩'
from 学生成绩
where 课程号=1002
end
else
begin
select 学号,期中成绩 as '数学其中成绩'
from 学生成绩
where 课程号=@stuID and 课程号=1002--这里为什么有两个课程号的条件,学号把
select 学号,期中成绩 as '数学其中成绩'
from 学生成绩
where 课程号=2005 and 学号=@stuID
end
go
EnForGrass 2012-03-14
  • 打赏
  • 举报
回复
首先纠正一下这不是触发器,是存储过程


create procedure pro_new2
@ stuID char(6)=null
as
if
(@stuID is null)--空格
begin
select 学号,期中成绩 as '数学其中成绩'--空格
from 学生成绩
where 课程号=1002
select 学号,期中成绩 as '数学其中成绩'
from 学生成绩
where 课程号=1002
end
else
begin
select 学号,期中成绩 as '数学其中成绩'
from 学生成绩
where 课程号=@stuID and 课程号=1002
select 学号,期中成绩 as '数学其中成绩'
from 学生成绩
where 课程号=2005 and 学号=@stuID
end
go

22,300

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server 疑难问题
社区管理员
  • 疑难问题社区
  • 尘觉
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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