游标很耗性能,能不使用就尽量不使用
游标分为静态和动态
静态游标在打开时会将数据集存储在tempdb中,在游标打开以后对数据库的更新不会显示在游标中。
动态游标在打开后会反映对数据库的更改。
-- 声明游标名
DECLARE yb_name CURSOR
FOR
--接查询语句
SELECT TestId ,
Action
FROM dbo.test2;
-- 打开游标
OPEN yb_name;
-- 临时变量
DECLARE @TestId UNIQUEIDENTIFIER;
DECLARE @Action INT;
FETCH NEXT --fetch NEXT (取下一个)
FROM yb_name INTO @TestId, @Action;
-- 循环取数据
WHILE @@FETCH_STATUS = 0
BEGIN
SELECT @TestId;
FETCH NEXT FROM yb_name INTO @TestId, @Action;
--可以做if或者其他操作
IF ( @Action = 3 )
SELECT GETDATE();
END;
-- 关闭游标
CLOSE yb_name;
-- 删除游标
DEALLOCATE yb_name;