我的语句大概是这样: -- 取得审查记录 -- 找到本次审查的员工及每个员工的审查日期 DECLARE review_cursor CURSOR FOR SELECT serialnumber,begindate,enddate FROM #rev_emp OPEN review_cursor FETCH NEXT FROM review_cursor INTO @serialnumber,@begindate,@enddate-- 开始一批员工的审查(每个员工,一段开始时间,一段结束时间) WHILE(@@FETCH_STATUS=0) BEGIN END
-- 取得审查记录 -- 找到本次审查的员工及每个员工的审查日期 DECLARE review_cursor CURSOR FOR SELECT serialnumber,begindate,enddate FROM #rev_emp OPEN review_cursor FETCH NEXT FROM review_cursor INTO @serialnumber,@begindate,@enddate -- 开始一批员工的审查(每个员工,一段开始时间,一段结束时间) WHILE(@@FETCH_STATUS=0) BEGIN --开始具体某个员工的审查 OPEN ioimport_cursor FETCH NEXT FROM ioimport_cursor INTO @AutoID,@regwktime,@NowAttDate,@Absent2Hour,@att_flag,@latearrive,@earlyleave,@workhourid WHILE(@@FETCH_STATUS=0) BEGIN FETCH NEXT FROM ioimport_cursor INTO @AutoID,@regwktime,@NowAttDate,@Absent2Hour,@att_flag,@latearrive,@earlyleave,@workhourid
END FETCH NEXT FROM review_cursor INTO @serialnumber,@begindate,@enddate END
选择合适的游标类型
@@fetch_status<>0 ,@@fetch_status<>0可能是游标到底了,也有可能是
Fext Next取值失败了。那造成这种Fetch失败可能是因为什么呢?有什么写法可以让这个循环跳过有问题的地方
-- 取得审查记录
-- 找到本次审查的员工及每个员工的审查日期
DECLARE review_cursor CURSOR FOR
SELECT serialnumber,begindate,enddate FROM #rev_emp
OPEN review_cursor
FETCH NEXT FROM review_cursor INTO @serialnumber,@begindate,@enddate-- 开始一批员工的审查(每个员工,一段开始时间,一段结束时间)
WHILE(@@FETCH_STATUS=0)
BEGIN
END
-- 找到本次审查的员工及每个员工的审查日期
DECLARE review_cursor CURSOR FOR
SELECT serialnumber,begindate,enddate FROM #rev_emp
OPEN review_cursor
FETCH NEXT FROM review_cursor INTO @serialnumber,@begindate,@enddate
-- 开始一批员工的审查(每个员工,一段开始时间,一段结束时间)
WHILE(@@FETCH_STATUS=0)
BEGIN
--开始具体某个员工的审查 OPEN ioimport_cursor FETCH NEXT FROM ioimport_cursor INTO
@AutoID,@regwktime,@NowAttDate,@Absent2Hour,@att_flag,@latearrive,@earlyleave,@workhourid
WHILE(@@FETCH_STATUS=0)
BEGIN FETCH NEXT FROM ioimport_cursor INTO
@AutoID,@regwktime,@NowAttDate,@Absent2Hour,@att_flag,@latearrive,@earlyleave,@workhourid
END
FETCH NEXT FROM review_cursor INTO @serialnumber,@begindate,@enddate
END