WITH 암호화 옵션은 다음 예제와 같이 시스템 카탈로그를 쿼리하거나 메타데이터 함수를 사용할 때 프로시저의 정의를 난독화합니다. 저장 프로시저를 테스트하고 디버깅하는 것은 까다로울 수 있습니다. 디버깅 도구를 함께 배치하여 저장 프로시저를 단계별로 추적하고 추적하기가 더 어려울 수 있습니다. 그것은 확실히 2000 년대 초반보다 더 나은 얻고있다, 하지만 여전히 네이티브 코드를 디버깅하는 것만큼 쉽지 않다. 기본값 매개 변수에 대한 기본값입니다. 매개 변수에 대한 기본값이 정의된 경우 해당 매개 변수에 대한 값을 지정하지 않고 프로시저를 실행할 수 있습니다. 기본값은 상수이거나 NULL이어야 합니다. 상수 값은 와일드카드 형식일 수 있으므로 프로시저에 매개 변수를 전달할 때 LIKE 키워드를 사용할 수 있습니다. RECOMPILE 데이터베이스 엔진이 이 프로시저에 대한 쿼리 계획을 캐시하지 않으므로 실행될 때마다 컴파일되어야 합니다. 다시 컴파일을 강제하는 이유에 대한 자세한 내용은 저장 프로시저 다시 컴파일을 참조하십시오. 복제용 또는 CLR 프로시저에 대해 이 옵션을 사용할 수 없습니다. 최대 중첩 수준을 초과하면 전체 호출 체인이 실패합니다.

@@NESTLEVEL 함수를 사용하여 현재 저장 프로시저 실행의 중첩 수준을 반환할 수 있습니다. SQL 프로시저에 대한 프로시저 만들기 문 : @ 매개 변수 A 매개 변수는 프로시저에 선언되었습니다. at sign(@)을 첫 번째 문자로 사용하여 매개 변수 이름을 지정합니다. 매개 변수 이름은 식별자에 대한 규칙을 준수해야 합니다. 매개 변수는 프로시저에 로컬입니다. 다른 프로시저에서 동일한 매개 변수 이름을 사용할 수 있습니다. 다음 예제에서는 EXECUTE AS 절을 사용하여 프로시저를 실행할 수 있는 보안 컨텍스트를 지정하는 방법을 보여 주며 있습니다. 이 예제에서 CALLER 옵션은 프로시저를 호출하는 사용자의 컨텍스트에서 프로시저를 실행할 수 있음을 지정합니다. 그런 다음 로컬 커서 변수를 선언하고 로컬 변수에 커서를 할당하는 프로시저를 실행한 다음 커서에서 행을 가져오는 일괄 처리를 실행합니다.

프로시저는 한 프로시저가 다른 프로시저를 호출하거나 CLR 루틴, 형식 또는 집계를 참조하여 관리 코드를 실행할 때 중첩됩니다. 프로시저 및 관리 코드 참조는 최대 32수준까지 중첩될 수 있습니다. 호출된 프로시저 또는 관리 코드 참조가 실행을 시작하고 호출된 프로시저 또는 관리 코드 참조가 실행을 완료하면 중첩 수준이 하나씩 증가합니다.

Catégories :