2017-10-05 1 views
1

int 출력 매개 변수가있는 저장 프로 시저가 있습니다. 나는 SQL Server 프로파일 러를 실행하는 경우, 일부 .NET 코드를 통해 저장 프로 시저를 실행하고 RPC 캡처 : 완료 이벤트를 텍스트 데이터는 다음과 같습니다가 값을 얻는 것처럼SQL 프로파일 러에서 저장 프로 시저 실행

declare @p1 int 
set @p1=13 
exec spStoredProcedure @[email protected] output 
select @p1 

왜 보는가 저장 프로 시저를 실행하기 전에 출력 매개 변수를?

답변 클래스는 RPC:completed입니다. 그래서 그것은 그 당시의 결과를 이미 알고 있습니다. 하지만 RPC:completed 이벤트가 완료된 후 임원 성명서가 왜 있는지 이해할 수 없습니다.

답변

1

Profiler (또는 Extended Events) 추적에서 볼 수있는 RPC Completed TextData는 SQL Server에서 실행 한 실제 명령문이 아닌 RPC 요청의 렌더링입니다. 이렇게하면 SQL 일괄 처리로 임시 실행을위한 SSMS 창으로 텍스트 복사/붙여 넣기가 용이 해집니다.

RPC가 완료된 후에 실제 출력 값을 알 수 있기 때문에 추적 텍스트는 실제 값을 사용하여 매개 변수 변수를 초기화합니다. 아마 실행 전에 NULL로 초기화되었다는 것이 더 명확 할 것이다.