游标的用法问题
下面的sql语句语法有问题
错误提示是
消息 156,级别 15,状态 1,第 1 行
关键字 'DECLARE' 附近有语法错误。
消息 102,级别 15,状态 1,第 3 行
')' 附近有语法错误。
消息 102,级别 15,状态 1,第 5 行
')' 附近有语法错误。
请问应该怎么写呢!
update t_personnel_department set cSupcode=(DECLARE youbiao CURSOR FOR select c.cdepcode from t_personnel_department a
left join sheet1$ b on a.cdepname=b.部门名称 left join (select cdepcode,cdepname from t_personnel_department
) c on b.上级部门名称=c.cdepname OPEN youbiao FETCH NEXT FROM youbiao) where cdepname(DECLARE youbiao1 CURSOR FOR select a.cdepname from t_personnel_department a
left join sheet1$ b on a.cdepname=b.部门名称 left join (select cdepcode,cdepname from t_personnel_department
) c on b.上级部门名称=c.cdepname OPEN youbiao1 FETCH NEXT FROM youbiao1)
------解决方案--------------------纯属乱来。。。
楼主看一下游标的用法。。
在联机帮助—输入 declare cursor—有列子
------解决方案--------------------[code=--声明游标
--声明部门编码,部门名称两个变量,用于存放游标取出来的数据
DECLARE @cdepcode varchar(20)
DECLARE @cdepname varchar(40)
DECLARE youbiao CURSOR FOR
select c.cdepcode,a.cdepname from t_personnel_department a
left join sheet1$ b on a.cdepname=b.部门名称
left join (select cdepcode,cdepname from t_personnel_department) c on b.上级部门名称=c.cdepname
--打开游标
OPEN youbiao
FETCH NEXT FROM youbiao into @cdepcode,@cdepname
--执行成功
while @@fetch_status=0
begin
update t_personnel_department
set cSupcode=@cdepcode
where cdepname=@cdepname
FETCH NEXT FROM youbiao into @cdepcode,@cdepname
end
--关闭游标
close youbiao
--销毁游标
deallocate youbiao
][/code]
------解决方案--------------------晕死,定义总得在使用前吧