消息 156,级别 15,状态 1,过程 p_update,第 3 行 关键字 'SELECT' 附近有语法错误。 下面是代码
CREATEPROCEDUREp_update@course_idCHAR(3),@student_idCHAR(6),@ATINYINT,@BTINYINT,@cred...
CREATE PROCEDURE p_update
@course_id CHAR(3),@student_id CHAR(6),@A TINYINT,@B TINYINT,@credit SMALLINT OUTPUT
SELECT @A=credit
FROM course
WHERE course_id=@course_id AND credit>=60
SELECT @B=credit
FROM student
WHERE student_id=@student_id
SELECT @credit=@A+@B
FROM course,student 展开
@course_id CHAR(3),@student_id CHAR(6),@A TINYINT,@B TINYINT,@credit SMALLINT OUTPUT
SELECT @A=credit
FROM course
WHERE course_id=@course_id AND credit>=60
SELECT @B=credit
FROM student
WHERE student_id=@student_id
SELECT @credit=@A+@B
FROM course,student 展开
2个回答
展开全部
没表,就写个缩水版,重现错误.
1> CREATE PROCEDURE p_update
2> @course_id CHAR(3),@student_id CHAR(6),@A TINYINT,@B TINYINT,@credit SMALLINT
OUTPUT
3> SELECT @A=1
4> SELECT @B=2
5> SELECT @credit=@A+@B
6> go
消息 156,级别 15,状态 1,服务器 ZQWANG\SQLEXPRESS,过程 p_update,第 3 行
关键字 'SELECT' 附近有语法错误。
原因:
缺少 AS 关键字。
1> CREATE PROCEDURE p_update
2> @course_id CHAR(3),@student_id CHAR(6),@A TINYINT,@B TINYINT,@credit SMALLINT
OUTPUT
3> AS
4> BEGIN
5> SELECT @A=1
6> SELECT @B=2
7> SELECT @credit=@A+@B
8> END
9> go
1>
1> CREATE PROCEDURE p_update
2> @course_id CHAR(3),@student_id CHAR(6),@A TINYINT,@B TINYINT,@credit SMALLINT
OUTPUT
3> SELECT @A=1
4> SELECT @B=2
5> SELECT @credit=@A+@B
6> go
消息 156,级别 15,状态 1,服务器 ZQWANG\SQLEXPRESS,过程 p_update,第 3 行
关键字 'SELECT' 附近有语法错误。
原因:
缺少 AS 关键字。
1> CREATE PROCEDURE p_update
2> @course_id CHAR(3),@student_id CHAR(6),@A TINYINT,@B TINYINT,@credit SMALLINT
OUTPUT
3> AS
4> BEGIN
5> SELECT @A=1
6> SELECT @B=2
7> SELECT @credit=@A+@B
8> END
9> go
1>
更多追问追答
追问
谢谢啊,前面的问题解决好了,后面又有一个问题,希望能帮我解决,先谢谢啦。
消息 102,级别 15,状态 1,过程 p_update,第 16 行
')' 附近有语法错误。
PRINT '206号课程成绩不低于60分的同学的总学分加上该课程的学分数'+STR(@credit)这就是16行
追答
单单看
PRINT '206号课程成绩不低于60分的同学的总学分加上该课程的学分数'+STR(@credit)
看不出什么问题. 这个要看整个代码才知道了.
毕竟错误信息是
第 16 行
')' 附近有语法错误。
是 16行 ')' 附近, 并不是一定问题就出在 16行.
和前面的情况一样,
前面是 第 3 行
关键字 'SELECT' 附近有语法错误。
你要是只粘贴出第3行, 我也看不出问题在哪里的.
展开全部
你好,少了个关键字 AS ,请参考如下代码:
CREATE PROCEDURE p_update
@course_id CHAR(3),@student_id CHAR(6),@A TINYINT,@B TINYINT,@credit SMALLINT OUTPUT
AS
SELECT @A=credit
FROM course
WHERE course_id=@course_id AND credit>=60
SELECT @B=credit
FROM student
WHERE student_id=@student_id
SELECT @credit=@A+@B
FROM course,student
CREATE PROCEDURE p_update
@course_id CHAR(3),@student_id CHAR(6),@A TINYINT,@B TINYINT,@credit SMALLINT OUTPUT
AS
SELECT @A=credit
FROM course
WHERE course_id=@course_id AND credit>=60
SELECT @B=credit
FROM student
WHERE student_id=@student_id
SELECT @credit=@A+@B
FROM course,student
追问
不好意思啊 ,我没说清楚,刚才那16行是那个调用代码。下面是调用代码,前面的我是按你的代码写的。
--调用该存储过程,返回206号课程成绩不低于60分的同学的总学分加上该课程的学分数
DECLARE @p_update SMALLINT
EXEC p_update '206',@credit OUTPUT
PRINT '206号课程成绩不低于60分的同学的总学分加上该课程的学分数'+STR(@credit)
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询