我不知道为什么它给了我这个错误,找不到任何东西
这是我的代码
@cid int,
@sid char(9)
AS
BEGIN
update StudentCourses
SET mode=0
where(select CourseId,StudentId from StudentCourses where CourseId=@cid
and StudentId=(Select PkId from Students where ID=@sid))
END
GO
答案 0 :(得分:0)
你的where语句没有比较所以它无效 - 它不能是真或假
答案 1 :(得分:0)
不确定你的桌面结构究竟是什么样的,这是猜测,但我认为你需要做这样的事情...
@cid int,
@sid char(9)
AS
BEGIN
update StudentCourses
SET mode=0
where CourseId=@cid
and StudentId IN (Select PkId
from Students
where ID=@sid)
END
GO
查询问题
1- WHERE子句其中(选择CourseId,来自Stude的StudentId ....您的子查询只是检索数据,它没有为您的主查询提供条件来过滤它刚刚返回的行数据这是导致query.br/>
错误的一个问题2 - 具有可能的多个值的子查询和StudentId =(从ID = @sid的学生中选择PkId)此子查询可以返回多个值。在这种情况下,您不能使用'='等于运算符,您需要使用'IN'运算符,就像我在答案中提到的那样。