(SQL游标) 根据行号更新某一列序号

系统 1856 0

--声明2个变量
declare @rownum nvarchar(20)  
declare @num int
set   @num =0
--声明一个游标mycursor,select语句中参数的个数必须要和从游标取出的变量名相同
declare mycursor cursor for select row_number() over(order by Code) as rownum from T_RolePermisModule
 
--打开游标
open mycursor
 
--从游标里取出数据赋值到我们刚才声明的2个变量中
fetch next from mycursor into @rownum
 
--判断游标的状态
--0 fetch语句成功    
---1 fetch语句失败或此行不在结果集中    
---2被提取的行不存在
while (@@fetch_status=0)
begin
 
--显示出我们每次用游标取出的值
   print '游标成功取出一条数据'

   set   @num =@num+1
   print @num
   --UPDATE T SET [iIndex] = @num

--05下有莫名奇妙的横线,不显示

UPDATE T SET [iIndex] =STUFF('TT000',6-LEN(@num),LEN(@num),@num) 
   from (select *,row_number() over(order by [iIndex]) as rownum from T_RolePermisModule) T
   where @rownum =rownum
 
--用游标去取下一条记录
   fetch next from mycursor into @rownum
end
--关闭游标
close mycursor
--撤销游标
deallocate mycursor

(SQL游标) 根据行号更新某一列序号


更多文章、技术交流、商务合作、联系博主

微信扫码或搜索:z360901061

微信扫一扫加我为好友

QQ号联系: 360901061

您的支持是博主写作最大的动力,如果您喜欢我的文章,感觉我的文章对您有帮助,请用微信扫描下面二维码支持博主2元、5元、10元、20元等您想捐的金额吧,狠狠点击下面给点支持吧,站长非常感激您!手机微信长按不能支付解决办法:请将微信支付二维码保存到相册,切换到微信,然后点击微信右上角扫一扫功能,选择支付二维码完成支付。

【本文对您有帮助就好】

您的支持是博主写作最大的动力,如果您喜欢我的文章,感觉我的文章对您有帮助,请用微信扫描上面二维码支持博主2元、5元、10元、自定义金额等您想捐的金额吧,站长会非常 感谢您的哦!!!

发表我的评论
最新评论 总共0条评论