这里用两个数据表结合来讲述游标示例:
select * from [dbo].[test] where listname='游标'
select * from [dbo].[testlink] where testid in (select id from [dbo].[test] where listname='游标')
查询结果:
目的:在 [dbo].[testlink] 表中查询出 testid 属于 ([dbo].[test] 中 listname='游标' 且typedata='有效' 的 数据 id)的数据,并将 [dbo].[testlink] 中符合条件的数据更新为status=2,datetime=当前时间。
[dbo].[test] 中 listname='游标' 且typedata='有效' 的 数据 id 有11、13、14。
对应 [dbo].[testlink] 中的数据id有1、2、4、5、6
执行语句:
DECLARE @testid int
DECLARE My_Cursor CURSOR
FOR (select id from [dbo].[test] where listname='游标' and typedata='有效')
OPEN My_Cursor;
FETCH NEXT FROM My_Cursor INTO @testid;
WHILE @@FETCH_STATUS = 0 BEGIN PRINT @testid;
update [dbo].[testlink] set status=2,datetime=GETDATE() where testid=@testid
FETCH NEXT FROM My_Cursor INTO @testid;
END CLOSE My_Cursor;
DEALLOCATE My_Cursor;
GO
结果
这样就已经执行成功了,大家应该能看出来我平时用的数据都是顺便设的哈,不要在意,方法有用就行啦