SQL语句如下
DECLARE @TempID int
DECLARE @MAINUSERID VARCHAR(3000)
DECLARE @mailContent VARCHAR(MAX)
DECLARE @choice varchar(200)
DECLARE @topic varchar(100)
DECLARE @arrangeID INT
DECLARE @endTime DATETIME
DECLARE @frequency varchar(500)
DECLARE @department INT
DECLARE @userID INT
DECLARE @awokeDate INT
DECLARE @childAwokeTime varchar(50)
DECLARE @CHILDUSERID VARCHAR(3000)
DECLARE childPlanCursor CURSOR FOR
SELECT choice,arrange_particularDetail.topic,arrangeID,arrange_particularDetail.endTime,frequency,department,awokeDate,awokeTime
FROM arrange_particularDetail,arrange_particularDepartmentPlan
WHERE arrange_particularDetail.timeBadge=arrange_particularDepartmentPlan.timeBadge
OPEN childPlanCursor
FETCH NEXT FROM childPlanCursor INTO @choice,@topic,@arrangeID,@endTime,@frequency,@department,@awokeDate,@childAwokeTime
while @@FETCH_STATUS=0
begin
select @awokeDate
SET @CHILDUSERID=''
if @frequency = 'WW'
begin
if @awokeDate=datepart(dw,getdate())
begin
IF @choice!=''
BEGIN
SET @CHILDUSERID=@choice
END
IF @choice=''
BEGIN
DECLARE CHILDDEPARTCURSOR CURSOR FOR
SELECT userID
FROM hr_employee,hr_users
WHERE UID=employeeID AND departmentID=@department
OPEN CHILDDEPARTCURSOR
FETCH NEXT FROM CHILDDEPARTCURSOR
INTO @CHILDuserID
WHILE @@FETCH_STATUS = 0
BEGIN
IF @CHILDUSERID!=''
BEGIN
SET @CHILDUSERID=@CHILDUSERID+'|'
END
SET @CHILDUSERID=@CHILDUSERID+CONVERT(VARCHAR(20),@CHILDuserID)
FETCH NEXT FROM CHILDDEPARTCURSOR
INTO @CHILDuserID
END
CLOSE CHILDDEPARTCURSOR
DEALLOCATE CHILDDEPARTCURSOR
END
SET @mailContent='计划提醒'
END
END
FETCH NEXT FROM childPlanCursor INTO @choice,@topic,@arrangeID,@endTime,@frequency,@department,@awokeDate,@childAwokeTime
END
close planCursor --关闭游标
deallocate planCursor
不好意思啊,游标的关闭和销毁,是写全的,只是没帖出来.不是这个原因
如果没有执行next就不会进行循环了,现在是死循环啊