游标使用问题!

monk188 2005-06-14 11:08:23
晚辈
初学游标的使用,不知道下面代码有何问题,而不能执行!
求助给为大侠!
__________________________________________________________________________________________
学生信息表:
学号|专业校内码|部门代码
__________________________________________________________________________________________
问题是这样:我需要取专业代码的前两位数字作为部门代码.
就是用SUBSTRING(专业代码,1,2)的结果来UPDATE部门代码!
如:
40312058|1102|NULL
执行我写的存储过程之后记录变成
40312058|1102|11
__________________________________________________________________________________________
我编写的代码如下:
DECLARE stu_did CURSOR FOR SELECT 学号, SUBSTRING(专业校内码, 1, 2)
AS 学院代码
FROM 学生信息表
ORDER BY 学号
OPEN stu_did

FETCH NEXT FROM stu_did

WHILE (@@FETCH_STATUS = 0)
BEGIN
UPDATE 学生信息表 SET 部门代码 = stu_did.学院代码
WHERE 学号 = stu_did.学号
FETCH NEXT FROM stu_did
END

CLOSE stu_did
DEALLOCATE stu_did
__________________________________________________________________________________________
运行时出现这样的错误:
列前缀stu_did与查询中所用的表名或别名不匹配!
__________________________________________________________________________________________
请各位大侠帮忙啊!!!
...全文
66 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
僵哥 2005-06-14
  • 打赏
  • 举报
回复
declare @id varchar(10)
declare @did varchar(10)
DECLARE stu_did CURSOR FOR SELECT 学号, SUBSTRING(专业校内码, 1, 2)
AS 学院代码
FROM 学生信息表
ORDER BY 学号
OPEN stu_did

FETCH NEXT FROM stu_did into @id,@did

WHILE (@@FETCH_STATUS = 0)
BEGIN
UPDATE 学生信息表 SET 部门代码 = @did
WHERE 学号 = @id
FETCH NEXT FROM stu_did into @id,@did
END

CLOSE stu_did
DEALLOCATE stu_did
wangdehao 2005-06-14
  • 打赏
  • 举报
回复
游标很低效,数据量大的时候不建议使用,可以直接用sql完成

update 学生信息表 set 部门代码= substring(专业代码,1,2)
wangdehao 2005-06-14
  • 打赏
  • 举报
回复
declare @xh varchar(4000)
declare @schoolid varchar(4000)


DECLARE stu_did CURSOR FOR SELECT 学号, SUBSTRING(专业校内码, 1, 2)
FROM 学生信息表
ORDER BY 学号
OPEN stu_did

FETCH NEXT FROM stu_did into into @xh,@schoolid

WHILE (@@FETCH_STATUS = 0)
BEGIN
UPDATE 学生信息表 SET 部门代码 = @schoolid
WHERE 学号 = @xh
FETCH NEXT FROM stu_did into into @xh,@schoolid
END

CLOSE stu_did
DEALLOCATE stu_did

27,579

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server 应用实例
社区管理员
  • 应用实例社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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