SQL中游标使用--遍历数据逐行更新:相当于for循环
2015-01-05 09:18
309 查看
更新网站数据的时候遇到的,使用游标很好处理哦,在这里和大家分享下
DECLARE @school varchar(50)
DECLARE @city varchar(50)
DECLARE @lg int
DECLARE @ws int
DECLARE My_Cursor CURSOR --定义游标
FOR (SELECT 学校,地区,[2013年理工类],[2013年文史类] FROM ScoreSchoolCity where ([2013年理工类] is not null or [2013年文史类] is not null))
OPEN My_Cursor; --打开游标
FETCH NEXT FROM My_Cursor into @school,@city,@lg,@ws ;--读取第一行数据
WHILE @@FETCH_STATUS = 0 --游标读取下一条数据是否成功,0表示成功
BEGIN
PRINT @school; --打印数据
print @city; --打印数据
print @lg; --打印数据
print @ws; --打印数据
UPDATE pj.dbo.ScoreSchoolCity SET [理工类2013年录取分数线] =@lg,[文史类类2013年录取分数线]=@ws WHERE 学校名称 = @school and 招生省区=@city; --更新数据
FETCH NEXT FROM My_Cursor into @school,@city,@lg,@ws ; --读取下一行数据
end
CLOSE My_Cursor; --关闭游标
DEALLOCATE My_Cursor; --释放游标
GO
DECLARE @school varchar(50)
DECLARE @city varchar(50)
DECLARE @lg int
DECLARE @ws int
DECLARE My_Cursor CURSOR --定义游标
FOR (SELECT 学校,地区,[2013年理工类],[2013年文史类] FROM ScoreSchoolCity where ([2013年理工类] is not null or [2013年文史类] is not null))
OPEN My_Cursor; --打开游标
FETCH NEXT FROM My_Cursor into @school,@city,@lg,@ws ;--读取第一行数据
WHILE @@FETCH_STATUS = 0 --游标读取下一条数据是否成功,0表示成功
BEGIN
PRINT @school; --打印数据
print @city; --打印数据
print @lg; --打印数据
print @ws; --打印数据
UPDATE pj.dbo.ScoreSchoolCity SET [理工类2013年录取分数线] =@lg,[文史类类2013年录取分数线]=@ws WHERE 学校名称 = @school and 招生省区=@city; --更新数据
FETCH NEXT FROM My_Cursor into @school,@city,@lg,@ws ; --读取下一行数据
end
CLOSE My_Cursor; --关闭游标
DEALLOCATE My_Cursor; --释放游标
GO
相关文章推荐
- SQL中游标的使用--遍历数据逐行更…
- SQL使用游标遍历多层table获取每行的数据进行操作
- t-sql - 使用游标来遍历数据
- 使用游标逐行更新数据
- sql不使用游标遍历表数据
- 使用游标将excel不同表的列关联,并根据两表间相同的列值逐行更新数据
- SQL利用游标遍历所有数据并更新所有数据
- 使用SQL游标对数据进行遍历循环操作
- SQL 游标的使用(更新数据)
- Oracle 学习:PL/SQL循序渐进全面学习教程--课程十三 使用组合数据类型* 游标操纵数据
- 游标操作,使用游标,更新数据
- Oracle 存储过程中使用cursor 游标遍历数据
- SQL中用游标循环更新数据(原)
- 用SQL游标遍历循环数据的方法
- 使用游标批量更新数据
- SQL查询遍历数据方法二 [ 游标 + While循环]
- 在C#使用SqlDataAdapter的Update更新数据
- [Oracle]在PL/SQL中更改数据和使用游标获取数据
- 如何在 Visual C# .NET 中使用 SqlDataAdapter 对象更新 SQL Server 数据库
- 在Oralce存储过程中使用游标来逐行处理数据示例并执行调试