sql游标的问题
现在有一张表如下:
kmdm kmmx
101 1
102 0
10201 1
10202 1
10203 1
103 0
...
里面的关系是这样的,kmdm字段值,如果不带下级明细的kmmx字段值为1如果带有下级明细的kmmx字段值为0。
里面有错误,比如103不带下级明细值应该为1,我要逐一找出这样的记录并修改它的kmmx值为正确的值,我写了下面的sql语
句
怎么得出的结果是这样的呢:
kmdm kmmx
101 1
102 1
10201 1
10202 1
10203 1
103 1
...
结果kmmx字段值全变成了1.请大侠救我。
declare @kmdm varchar(16),@i int
declare xfkmmx cursor for select kmdm from gl_kmxx where gsdm='' for update
open xfkmmx
fetch next from xfkmmx into @kmdm
while(@@fetch_status<>-1)
begin
select @i=count(kmdm) from gl_kmxx where gsdm='' and kmdm like @kmdm
if @i>1
begin
update gl_kmxx set kmmx='0' where current of xfkmmx
end
else
begin
update gl_kmxx set kmmx='1' where current of xfkmmx
end
fetch next from xfkmmx into @kmdm
end
close xfkmmx
deallocate xfkmmx
kmdm kmmx
101 1
102 0
10201 1
10202 1
10203 1
103 0
...
里面的关系是这样的,kmdm字段值,如果不带下级明细的kmmx字段值为1如果带有下级明细的kmmx字段值为0。
里面有错误,比如103不带下级明细值应该为1,我要逐一找出这样的记录并修改它的kmmx值为正确的值,我写了下面的sql语
句
怎么得出的结果是这样的呢:
kmdm kmmx
101 1
102 1
10201 1
10202 1
10203 1
103 1
...
结果kmmx字段值全变成了1.请大侠救我。
declare @kmdm varchar(16),@i int
declare xfkmmx cursor for select kmdm from gl_kmxx where gsdm='' for update
open xfkmmx
fetch next from xfkmmx into @kmdm
while(@@fetch_status<>-1)
begin
select @i=count(kmdm) from gl_kmxx where gsdm='' and kmdm like @kmdm
if @i>1
begin
update gl_kmxx set kmmx='0' where current of xfkmmx
end
else
begin
update gl_kmxx set kmmx='1' where current of xfkmmx
end
fetch next from xfkmmx into @kmdm
end
close xfkmmx
deallocate xfkmmx
...全文
相关推荐
Sql中游标和加锁的问题
Sql中游标和加锁的问题 Sql中游标和加锁的问题 Sql中游标和加锁的问题
SQL Server使用游标处理Tempdb究极竞争-DBA问题-程序员必知
主要介绍了SQL Server使用游标处理Tempdb究极竞争-DBA问题-程序员必知的相关资料,需要的朋友可以参考下
SQL游标
SQL SERVER游标
sql游标 cursor
cursor的基本用法 主要是针对sql的用法 如声明 用法 关闭等等
SQL游标深处 游标案例 没有说明 自己看
SQL游标深处.SQL游标深处.SQL游标深处.SQL游标深处.SQL游标深处.SQL游标深处.SQL游标深处.SQL游标深处.SQL游标深处.


疑难问题
