mssql 데이터베이스 커서 대량 수정 조건 기록 에 부합 하 는 방법

수요:프로젝트 가 막 올 라 와 서 표 가 없어 서 일정한 인 기 를 나타 내기 위해 서 는 처음에 각 항목 의 표 수 를 하나의 값 으로 부여 해 야 하지만 각 항목 이 같 을 수 없습니다.그렇지 않 으 면 문 제 를 쉽게 알 수 있 습 니 다.하하
 
DECLARE @Id varchar(50)
DECLARE My_Cursor CURSOR --
FOR (SELECT Id FROM dbo.kinpanAwardProject where session=9) --
OPEN My_Cursor; --
FETCH NEXT FROM My_Cursor INTO @Id; -- ( Id @Id )
WHILE @@FETCH_STATUS = 0
BEGIN
PRINT @Id; -- (Id)
UPDATE dbo.kinpanAwardProject SET ProTicketCount = cast( floor(rand()*30) as int)+40 WHERE Id = @Id; -- , 。
FETCH NEXT FROM My_Cursor INTO @Id; -- ( Id @Id )
END
CLOSE My_Cursor; --
DEALLOCATE My_Cursor; --
GO
 또 하나의 용법 이 있 습 니 다.더 좋 을 수 있 습 니 다.저 는 id 에 대한 판단 이 필요 하지 않 으 면 수정 할 때 where 조회 가 필요 하지 않 고 커서 의 현재 위 치 를 직접 수정 하 는 것 이 더 빠 를 것 이 라 고 생각 합 니 다
 
DECLARE My_Cursor CURSOR --
FOR (SELECT * FROM dbo.MemberAccount) --
OPEN My_Cursor; --
FETCH NEXT FROM My_Cursor ; --
WHILE @@FETCH_STATUS = 0
BEGIN
--UPDATE dbo.MemberAccount SET UserName = UserName + 'A' WHERE CURRENT OF My_Cursor; --
--DELETE FROM dbo.MemberAccount WHERE CURRENT OF My_Cursor; --
FETCH NEXT FROM My_Cursor; --
END
CLOSE My_Cursor; --
DEALLOCATE My_Cursor; --
GO

좋은 웹페이지 즐겨찾기