游状态"置疑"标概念与实例全面解说

  

引言,我们先不讲游标的什么概念,步骤及语法,先来看一个例子:

  

,,,,, ,,,,,

  

,,,,,,表一OriginSalary ,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,表二AddSalary

  

  

现在有2张表,一张是OriginSalary表——工资表,有三个字段0 _id员工号(NVARCHAR) O_Name员工姓名(NVARCHAR) O_Salary工资(浮动)。
另一张表AddSalary表——加薪表。有2个字段,O_ID员工号,A_Salary增加工资。两张表的O_ID是一一对应的,现在求将加薪的工资+原来的工资=现在的工资,也就是O_Salary=O_Salary + A_Salary,修改表OriginSalary的工资字段。
对于一些不熟悉游标的程序员来说,这个并不是什么很难的问题,这个问题用程序来实现可能也很简单。我先说说,用ASP.NET程序解决这个问题的思路:
1只,,,,,,先获得表OriginSalary的记录数,写个循环。
2只,,,,,select * from dbo写SQL语句”。作为一个左加入dbo OriginSalary。AddSalary B src=" https://cache.yisu.com/upload/information/20200706/153/129813.JPG ">         


通过实例我们可以看到游标逐行逐行都把值都取出来了。那么我请大家先不看下面的答案,在引言部分我刚才留个大家的问题试一下能不能解决吗?
现在我们写一个存储过程解决刚才我留下来的问题吧
创建过程PK_SalaryAdd

宣布@O_ID nvarchar (20), @A_Salary浮动
声明mycursor光标选择O_ID, A_Salary从AddSalary开放mycursor

获取下一个从mycursor @O_ID, @A_Salary
, (@@fetch_status=0)

开始更新OriginSalary组O_Salary=O_Salary + @A_Salary O_ID=@O_ID
获取下一个从mycursor @O_ID, @A_Salary

结束关闭mycursor释放mycursor


,
按照老方法,我们用查询分析器来执行我们的存储过程,看看结果是怎么样的吗?
Exec PK_SalaryAdd
让我看看效果吧(如图)

              ,,   


执行存储过程,看到我们影响了3行数据

  

,,
用sql语句,看看表OriginSalary现在的结果:,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,

  

  

  


,

  

1.4结束语
,很高兴大家能把这个教程看完,其实这只是游标的最最基础的一个应用,显示生活的逻辑的关系中,可能有更复杂的游标。但是我们只有学会走的路,才能跑步嘛。

  


游状态"置疑"标概念与实例全面解说