sp_cursorprepare(Transact-SQL)
적용 대상:SQL Server
커서 문 또는 일괄 처리를 실행 계획으로 컴파일하지만 커서를 만들지는 않습니다. 컴파일된 문은 나중에 sp_cursorexecute 사용할 수 있습니다. 이 프로시저는 sp_cursorexecute 함께 sp_cursoropen 함수와 동일하지만 두 단계로 분할됩니다. sp_cursorprepare TDS(테이블 형식 데이터 스트림) 패킷에서 ID = 3을 지정하여 호출됩니다.
구문
sp_cursorprepare prepared_handle OUTPUT , params , stmt , options
[ , scrollopt [ , ccopt ] ]
[ ; ]
인수
prepared_handle
정수 값을 반환하는 SQL Server에서 생성된 준비된 핸들 식별자입니다.
참고 항목
prepared_handle 이후에 커서를 열기 위해 sp_cursorexecute 프로시저에 제공됩니다. 핸들이 만들어지면 로그오프하거나 sp_cursorunprepare 프로시저를 통해 명시적으로 제거할 때까지 존재합니다.
params
매개 변수가 있는 문을 식별합니다. 변수의 매개 변수 정의는 문의 매개 변수 표식으로 대체됩니다. params는 ntext, nchar 또는 nvarchar 입력 값을 호출하는 필수 매개 변수입니다. 문이 매개 변수화되지 않은 경우 NULL 값을 입력합니다.
참고 항목
stmt가 매개 변수화되고 scrollopt PARAMETERIZED_STMT 값이 ON인 경우 ntext 문자열을 입력 값으로 사용합니다.
Stmt
커서 결과 집합을 정의합니다. stmt 매개 변수가 필요하며 ntext, nchar 또는 nvarchar 입력 값을 호출합니다.
참고 항목
stmt 값을 지정하는 규칙은 stmt 문자열 데이터 형식이 ntext여야 한다는 점을 제외하고 sp_cursoropen 규칙과 동일합니다.
options
커서 결과 집합 열의 설명을 반환하는 선택적 매개 변수입니다. 옵션을 사용하려면 다음 int 입력 값이 필요합니다.
값 | 설명 |
---|---|
0x0001 | RETURN_METADATA |
scrollopt
스크롤 옵션입니다. scrollopt 는 다음 int 입력 값 중 하나가 필요한 선택적 매개 변수입니다.
값 | 설명 |
---|---|
0x0001 | KEYSET |
0x0002 | DYNAMIC |
0x0004 | FORWARD_ONLY |
0x0008 | STATIC |
0x10 | FAST_FORWARD |
0x1000 | PARAMETERIZED_STMT |
0x2000 | AUTO_FETCH |
0x4000 | Auto_close |
0x8000 | CHECK_ACCEPTED_TYPES |
0x10000 | KEYSET_ACCEPTABLE |
0x20000 | DYNAMIC_ACCEPTABLE |
0x40000 | FORWARD_ONLY_ACCEPTABLE |
0x80000 | STATIC_ACCEPTABLE |
0x100000 | FAST_FORWARD_ACCEPTABLE |
요청된 값이 stmt로 정의된 커서에 적합하지 않을 수 있으므로 이 매개 변수는 입력 및 출력의 역할을 합니다. 이러한 경우 SQL Server는 적절한 값을 할당합니다.
ccopt
동시성 제어 옵션입니다. ccopt는 다음 int 입력 값 중 하나가 필요한 선택적 매개 변수입니다.
값 | 설명 |
---|---|
0x0001 | READ_ONLY |
0x0002 | SCROLL_LOCKS(이전에는 LOCKCC라고 함) |
0x0004 | OPTIMISTIC (이전에 OPTCC라고 함) |
0x0008 | OPTIMISTIC(이전에는 OPTCCVAL이라고 함) |
0x2000 | ALLOW_DIRECT |
0x4000 | UPDT_IN_PLACE |
0x8000 | CHECK_ACCEPTED_OPTS |
0x10000 | READ_ONLY_ACCEPTABLE |
0x20000 | SCROLL_LOCKS_ACCEPTABLE |
0x40000 | OPTIMISTIC_ACCEPTABLE |
0x80000 | OPTIMISITC_ACCEPTABLE |
scrollpt와 마찬가지로 SQL Server는 요청된 값과 다른 값을 할당할 수 있습니다.
설명
RPC 상태 매개 변수는 다음 중 하나입니다.
값 | 설명 |
---|---|
0 | 성공 |
0x0001 | Failure |
1FF6 | 메타데이터를 반환할 수 없습니다. 참고: 그 이유는 문에서 결과 집합을 생성하지 않기 때문입니다. 예를 들어 INSERT 또는 DDL 문입니다. |
예
다음은 sp_cursorprepare 및 sp_cursorexecute 사용하는 예제입니다.
declare @handle int , @p5 int, @p6 int
exec sp_cursorprepare @handle OUTPUT,
N'@dbid int',
N'select * from sys.databases where database_id < @dbid',
1,
@p5 output,
@p6 output
declare @p1 int
set @P1 = @handle
declare @p2 int
declare @p3 int
declare @p4 int
set @P6 = 4
exec sp_cursorexecute @p1, @p2 OUTPUT, @p3 output , @p4 output, @p5 OUTPUT, @p6
exec sp_cursorfetch @P2
exec sp_cursorunprepare @handle
exec sp_cursorclose @p2
stmt가 매개 변수화되고 scrollopt PARAMETERIZED_STMT 값이 ON이면 문자열 형식은 다음과 같습니다.
{ <지역 변수 이름>**<데이터 형식> } [ ,...n ]
참고 항목
sp_cursorexecute(Transact-SQL)
sp_cursoropen(Transact-SQL)
sp_cursorunprepare(Transact-SQL)
시스템 저장 프로시저(Transact-SQL)
피드백
https://aka.ms/ContentUserFeedback
출시 예정: 2024년 내내 콘텐츠에 대한 피드백 메커니즘으로 GitHub 문제를 단계적으로 폐지하고 이를 새로운 피드백 시스템으로 바꿀 예정입니다. 자세한 내용은 다음을 참조하세요.다음에 대한 사용자 의견 제출 및 보기