다음을 통해 공유


ROUTINES(Transact-SQL)

현재 데이터베이스에서 현재 사용자가 액세스할 수 있는 각 저장 프로시저와 함수에 대해 한 행을 반환합니다. 반환 값을 설명하는 열은 함수에만 적용됩니다. 저장 프로시저의 경우 이러한 열은 NULL이 됩니다.

이러한 뷰에서 정보를 검색하려면 INFORMATION_SCHEMA.view_name 형식으로 정규화된 이름을 지정합니다.

[!참고]

ROUTINE_DEFINITION 열은 함수 또는 저장 프로시저를 만든 원본 문을 포함합니다. 이러한 원본 문은 중간 캐리지 리턴을 포함하는 경우가 많습니다. 결과를 텍스트 형식으로 표시하는 응용 프로그램에 이 열을 반환하는 경우에는 ROUTINE_DEFINITION 결과의 중간 캐리지 리턴이 전체 결과 집합의 형식에 영향을 줄 수 있습니다. ROUTINE_DEFINITION 열을 선택하는 경우에는 반드시 중간 캐리지 리턴에 맞게 조정해야 합니다. 예를 들어 결과 집합을 표 형태로 반환하거나 ROUTINE_DEFINITION을 자체 입력란 형식으로 반환해야 합니다.

열 이름

데이터 형식

설명

SPECIFIC_CATALOG

nvarchar(128)

카탈로그의 특정 이름입니다. 이 이름은 ROUTINE_CATALOG와 동일합니다.

SPECIFIC_SCHEMA

nvarchar(128)

스키마의 특정 이름입니다.

중요 정보중요
개체의 스키마를 확인하기 위해 INFORMATION_SCHEMA 뷰를 사용하지 마십시오. 개체의 스키마를 확인하는 신뢰할 수 있는 유일한 방법은 sys.objects 카탈로그 뷰를 쿼리하거나 OBJECT_SCHEMA_NAME 함수를 사용하는 것입니다.

SPECIFIC_NAME

nvarchar(128)

카탈로그의 특정 이름입니다. 이 이름은 ROUTINE_NAME과 동일합니다.

ROUTINE_CATALOG

nvarchar(128)

함수의 카탈로그 이름입니다.

ROUTINE_SCHEMA

nvarchar(128)

이 함수를 포함하는 스키마의 이름입니다.

중요 정보중요
개체의 스키마를 확인하기 위해 INFORMATION_SCHEMA 뷰를 사용하지 마십시오. 개체의 스키마를 확인하는 신뢰할 수 있는 유일한 방법은 sys.objects 카탈로그 뷰를 쿼리하거나 OBJECT_SCHEMA_NAME 함수를 사용하는 것입니다.

ROUTINE_NAME

nvarchar(128)

함수의 이름입니다.

ROUTINE_TYPE

nvarchar(20)

저장 프로시저의 경우에는 PROCEDURE를, 함수의 경우에는 FUNCTION을 반환합니다.

MODULE_CATALOG

nvarchar(128)

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

MODULE_SCHEMA

nvarchar(128)

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

MODULE_NAME

nvarchar(128)

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

UDT_CATALOG

nvarchar(128)

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

UDT_SCHEMA

nvarchar(128)

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

UDT_NAME

nvarchar(128)

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

DATA_TYPE

nvarchar(128)

함수 반환 값의 데이터 형식입니다. 테이블 반환 함수인 경우에는 table을 반환합니다.

CHARACTER_MAXIMUM_LENGTH

int

반환 형식이 문자 형식인 경우 최대 길이를 문자 단위로 표시한 것입니다.

xml 및 큰 값 유형의 데이터인 경우 -1입니다.

CHARACTER_OCTET_LENGTH

int

반환 형식이 문자 형식인 경우 최대 길이를 바이트 단위로 표시한 것입니다.

xml 및 큰 값 유형의 데이터인 경우 -1입니다.

COLLATION_CATALOG

nvarchar(128)

항상 NULL을 반환합니다.

COLLATION_SCHEMA

nvarchar(128)

항상 NULL을 반환합니다.

COLLATION_NAME

nvarchar(128)

반환 값의 데이터 정렬 이름입니다. 문자 형식이 아닌 경우에는 NULL을 반환합니다.

CHARACTER_SET_CATALOG

nvarchar(128)

항상 NULL을 반환합니다.

CHARACTER_SET_SCHEMA

nvarchar(128)

항상 NULL을 반환합니다.

CHARACTER_SET_NAME

nvarchar(128)

반환 값 문자 집합의 이름입니다. 문자 형식이 아닌 경우에는 NULL을 반환합니다.

NUMERIC_PRECISION

smallint

반환 값의 숫자 전체 자릿수입니다. 숫자 형식이 아닌 경우에는 NULL을 반환합니다.

NUMERIC_PRECISION_RADIX

smallint

반환 값의 숫자 전체 자릿수 기수입니다. 문자 형식이 아닌 경우에는 NULL을 반환합니다.

NUMERIC_SCALE

smallint

반환 값의 소수 자릿수입니다. 문자 형식이 아닌 경우에는 NULL을 반환합니다.

DATETIME_PRECISION

smallint

반환 값이 datetime 형식인 경우에 소수 형식의 초 단위를 사용한 전체 자릿수입니다. 다른 데이터 형식에 대해서는 NULL을 반환합니다.

INTERVAL_TYPE

nvarchar(30)

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

INTERVAL_PRECISION

smallint

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

TYPE_UDT_CATALOG

nvarchar(128)

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

TYPE_UDT_SCHEMA

nvarchar(128)

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

TYPE_UDT_NAME

nvarchar(128)

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

SCOPE_CATALOG

nvarchar(128)

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

SCOPE_SCHEMA

nvarchar(128)

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

SCOPE_NAME

nvarchar(128)

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

MAXIMUM_CARDINALITY

bigint

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

DTD_IDENTIFIER

nvarchar(128)

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

ROUTINE_BODY

nvarchar(30)

Transact-SQL 함수의 경우에는 SQL을, 외부에서 작성된 함수의 경우에는 EXTERNAL을 반환합니다.

함수는 항상 SQL이 됩니다.

ROUTINE_DEFINITION

nvarchar(4000)

함수 또는 저장 프로시저가 암호화되지 않은 경우 함수 또는 저장 프로시저의 정의 텍스트 중 처음 4000자를 반환합니다. 다른 데이터 형식에 대해서는 NULL을 반환합니다.

완전한 정의를 얻었는지 확인하려면 sys.sql_modules 카탈로그 뷰에서 OBJECT_DEFINITION 함수 또는 definition 열을 쿼리하십시오.

EXTERNAL_NAME

nvarchar(128)

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

EXTERNAL_LANGUAGE

nvarchar(30)

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

PARAMETER_STYLE

nvarchar(30)

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

IS_DETERMINISTIC

nvarchar(10)

루틴이 확정적인 경우에는 YES를 반환합니다.

루틴이 확정적이지 않은 경우에는 NO를 반환합니다.

저장 프로시저에 대해서는 항상 NO를 반환합니다.

SQL_DATA_ACCESS

nvarchar(30)

다음 값 중 하나를 반환합니다.

NONE = 함수에 SQL이 포함되어 있지 않습니다.

CONTAINS = 함수에 SQL이 포함되어 있을 수 있습니다.

READS = 함수가 SQL 데이터를 읽을 수 있습니다.

MODIFIES = 함수가 SQL 데이터를 수정할 수 있습니다.

모든 함수의 경우에는 READS를, 모든 저장 프로시저의 경우에는 MODIFIES를 반환합니다.

IS_NULL_CALL

nvarchar(10)

인수 중 하나가 NULL인 경우 루틴을 호출할 것인지 여부를 표시합니다.

SQL_PATH

nvarchar(128)

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

SCHEMA_LEVEL_ROUTINE

nvarchar(10)

스키마 수준의 함수인 경우에는 YES를, 스키마 수준의 함수가 아닌 경우에는 NO를 반환합니다.

항상 YES를 반환합니다.

MAX_DYNAMIC_RESULT_SETS

smallint

루틴에 의해 반환되는 동적 결과 집합의 최대 수입니다.

함수의 경우에는 0을 반환합니다.

IS_USER_DEFINED_CAST

nvarchar(10)

사용자 정의 캐스트 함수인 경우에는 YES를, 사용자 정의 캐스트 함수가 아닌 경우에는 NO를 반환합니다.

항상 NO를 반환합니다.

IS_IMPLICITLY_INVOCABLE

nvarchar(10)

루틴을 암시적으로 호출할 수 있는 경우에는 YES를, 함수를 암시적으로 호출할 수 없는 경우에는 NO를 반환합니다.

항상 NO를 반환합니다.

CREATED

datetime

루틴이 만들어진 시간입니다.

LAST_ALTERED

datetime

함수를 마지막으로 수정한 시간입니다.

다음 예에서는 데이터베이스의 각 저장 프로시저 또는 사용자 정의 함수에 대한 정보를 반환합니다.

USE AdventureWorks;
GO

SELECT ROUTINE_SCHEMA, ROUTINE_NAME, ROUTINE_TYPE, 
       ROUTINE_DEFINITION AS [First 4000 characters], CREATED, LAST_ALTERED
FROM INFORMATION_SCHEMA.ROUTINES
ORDER BY ROUTINE_TYPE;