在update中使用select。提示操作必须使用一个可更新的查询。

来源:百度知道 编辑:UC知道 时间:2024/06/17 22:26:06
StudentInfo表中包括StuID,StuName,ClassID三个列。Class表中有ClassID,ClassName两个列。以下为我用的更新的命令。其中带.text的为控件。所有引号单引号都去掉了。那个没有问题。
update StudentInfo set StuID=id.text,StuName=name.text,ClassID=(select Class.ClassID from Class where Class.ClassName=myclass.text)
运行时提示 操作必须使用一个可更新的查询。如果去掉ClassID的更新就没有问题。请问如何解决?

估计是你这写法不对吧,你可以试试这样:
update StudentInfo St,(select Class.ClassID from Class where Class.ClassName=myclass.text) Cl set St.StuID=id.text,St.StuName=name.text,St.ClassID=Cl.ClassID;

update StudentInfo set (StuID,StuName,ClassID)=(select id.text,name.text,Class.ClassID from Class where Class.ClassName=myclass.text)

可能是不支持嵌套,你把两个sql语句分开吧,这样准行