간단한 커서 옵션 Static|Keyset|DYNAMIC|FASTFORWARD
쓰는 문구가 다 이거예요.
IF OBJECT_ID('T1') IS NOT NULL
DROP TABLE T1
GO
CREATE TABLE T1
(
ID INT PRIMARY KEY,
seq INT
)
DECLARE @seq INT=0
WHILE @seq < 50
BEGIN
INSERT INTO dbo.T1
( ID,seq )
VALUES ( @seq+1,@seq)
SET @seq=@seq+1
END
1 DECLARE @seq INT,@ID INT=1
2
3
4 DECLARE CUR_Static CURSOR STATIC|DYNAMIC|KEYSET|FAST_FORWARD
5 FOR SELECT ID,seq FROM T1 ORDER BY ID
6
7 OPEN CUR_Static
8 FETCH NEXT FROM CUR_Static INTO @ID,@seq
9 WHILE @@FETCH_STATUS = 0
10 BEGIN
12 PRINT @seq
13 FETCH NEXT FROM CUR_Static INTO @ID,@seq
14 END
15 CLOSE CUR_Static
16 DEALLOCATE CUR_Static
Static 옵션
Static 옵션은tempdb에서 결과 집합을 완전히 캐시하는 것과 같습니다.외부 수정 데이터는 커서 자체에 영향을 주지 않습니다. (커서 결과 집합의 임의의 열을 수정해도 영향을 주지 않습니다.)Static 옵션을 사용하면 커서를 업데이트하는 Current of 작업을 수행할 수 없습니다.
PS: 이 코드를 실행할 때 다른 창에 새 데이터를 즉시 삽입하고 수정하며 데이터를 삭제해도 현재 커서에 영향을 주지 않는다는 뜻이다.
Keyset 옵션
Keyset 옵션도tempdb에서 결과 집합을 캐시합니다. 메인 키만 캐시합니다.외부 수정 데이터는 메인 키를 수정할 수 없고 다른 열을 수정하는 것은 유효합니다.기본 테이블의 행이 삭제되면 @@FetchState 반환 값은 -2입니다.
PS: 이 코드를 실행할 때 다른 창에 새 데이터를 삽입하는 데 영향을 주지 않는다는 뜻이다.주 키가 아닌 데이터를 수정하면 얻을 수 있으며 데이터가 존재하지 않으면 88입니다
DYNAMIC 옵션
매번 가져올 때마다 즉시 업데이트, 추가, 수정, 삭제를 지원할 수 있습니다.ABSOLUTE 추출 옵션은 동적 커서 지원되지 않습니다.
FAST_FORWARD
성능 최적화가 활성화된 FORWARD 지정ONLY、READ_온리 커서.SCROLL 또는 FOR를 지정한 경우UPDATE는 FAST 도 지정할 수 없습니다.FORWARD.
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
다양한 언어의 JSONJSON은 Javascript 표기법을 사용하여 데이터 구조를 레이아웃하는 데이터 형식입니다. 그러나 Javascript가 코드에서 이러한 구조를 나타낼 수 있는 유일한 언어는 아닙니다. 저는 일반적으로 '객체'{}...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.