다음을 통해 공유


sp_stored_procedures(Transact-SQL)

현재 환경에서 저장 프로시저의 목록을 반환합니다.

항목 링크 아이콘Transact-SQL 구문 표기 규칙

구문

sp_stored_procedures [ [ @sp_name = ] 'name' ] 
    [ , [ @sp_owner = ] 'schema'] 
    [ , [ @sp_qualifier = ] 'qualifier' ]
    [ , [@fUsePattern = ] 'fUsePattern' ]

인수

  • [ @sp_name = ] 'name'
    카탈로그 정보를 반환하는 데 사용되는 프로시저의 이름입니다. name은 nvarchar(390)이며 기본값은 NULL입니다. 와일드카드 패턴 일치가 지원됩니다.

  • [ @sp_owner = ] 'schema'
    프로시저가 속한 스키마의 이름입니다. schema는 nvarchar(384)이며 기본값은 NULL입니다. 와일드카드 패턴 일치가 지원됩니다. owner를 지정하지 않은 경우 기본 DBMS의 기본 프로시저 표시 규칙이 적용됩니다.

    SQL Server에서 현재 스키마에 지정된 이름을 가진 프로시저가 포함된 경우 해당 프로시저가 반환됩니다. 불완전한 저장 프로시저가 지정된 경우 데이터베이스 엔진은 다음 순서로 프로시저를 검색합니다.

    • 현재 데이터베이스의 sys 스키마

    • 일괄 처리나 동적 SQL에서 실행된 경우 호출자의 기본 스키마 또는 불완전한 프로시저 이름이 다른 프로시저 정의의 본문 안에 나타나는 경우 이러한 다른 프로시저를 포함하는 스키마가 다음에 검색됩니다. 기본 스키마에 대한 자세한 내용은 사용자와 스키마 분리를 참조하십시오.

    • 현재 데이터베이스의 dbo 스키마

  • [ @qualifier = ] 'qualifier'
    프로시저 한정자의 이름입니다. qualifier는 sysname이며 기본값은 NULL입니다. 다양한 DBMS 제품에서 테이블에 대해 세 부분으로 구성된 이름 형식(qualifier**.owner.**name)을 지원합니다. SQL Server에서 qualifier는 데이터베이스 이름을 나타냅니다. 일부 제품에서는 테이블 데이터베이스 환경의 서버 이름을 나타냅니다.

  • [ @fUsePattern = ] 'fUsePattern'
    밑줄(_), 백분율(%), 대괄호([ ])가 와일드카드 문자로 인식되는지 여부를 결정합니다. fUsePattern은 bit이며 기본값은 1입니다.

    0 = 패턴 일치가 해제됩니다.

    1 = 패턴 일치가 설정됩니다.

반환 코드 값

없음

결과 집합

열 이름

데이터 형식

설명

PROCEDURE_QUALIFIER

sysname

프로시저 한정자 이름입니다. 이 열은 NULL이 될 수 있습니다.

PROCEDURE_OWNER

sysname

프로시저 소유자 이름입니다. 이 열은 항상 값을 반환합니다.

PROCEDURE_NAME

nvarchar(134)

프로시저 이름입니다. 이 열은 항상 값을 반환합니다.

NUM_INPUT_PARAMS

int

나중에 사용하도록 예약되어 있습니다.

NUM_OUTPUT_PARAMS

int

나중에 사용하도록 예약되어 있습니다.

NUM_RESULT_SETS

int

나중에 사용하도록 예약되어 있습니다.

REMARKS

varchar(254)

프로시저에 대한 설명입니다. SQL Server는 이 열에 대한 값을 반환하지 않습니다.

PROCEDURE_TYPE

smallint

프로시저 유형입니다. SQL Server는 항상 2.0을 반환합니다. 이 값은 다음 중 하나일 수 있습니다.

0 = SQL_PT_UNKNOWN

1 = SQL_PT_PROCEDURE

2 = SQL_PT_FUNCTION

주의

상호 운용성을 최대로 높이려면 게이트웨이 클라이언트가 퍼센트(%) 및 밑줄(_) 와일드카드 문자 등의 SQL-92-표준 패턴 일치만을 가정해야 합니다.

특정 저장 프로시저에 대한 현재 사용자의 실행 액세스에 관한 사용 권한 정보가 반드시 확인되는 것은 아니므로 액세스가 보장되지 않습니다. 세 부분으로 구성된 이름만 사용됩니다. 즉, 원격 저장 프로시저(네 부분으로 구성된 이름)와 로컬 저장 프로시저가 SQL Server에 대해 실행되면 로컬 저장 프로시저만 반환되고 원격 저장 프로시저는 반환되지 않습니다. sp_server_info에 대한 결과 집합에서 서버 특성인 ACCESSIBLE_SPROC이 Y인 경우 현재 사용자가 실행할 수 있는 저장 프로시저만 반환됩니다.

sp_stored_procedures는 ODBC의 SQLProcedures와 같습니다. 결과는 PROCEDURE_QUALIFIER, PROCEDURE_OWNERPROCEDURE_NAME 순서로 반환됩니다.

사용 권한

스키마에 대한 SELECT 권한이 필요합니다.

1. 현재 데이터베이스의 모든 저장 프로시저 반환

다음 예에서는 AdventureWorks2008R2 데이터베이스의 모든 저장 프로시저를 반환합니다.

USE AdventureWorks2008R2;
GO
EXECUTE sp_stored_procedures;

2. 단일 저장 프로시저 반환

다음 예에서는 uspLogError 저장 프로시저의 결과 집합을 반환합니다.

USE AdventureWorks2008R2;
GO
EXECUTE sp_stored_procedures N'uspLogError', N'dbo', N'AdventureWorks2008R2', 1;