다음을 통해 공유


sys.sql_모듈 (Transact-SQL)

적용 대상:SQL ServerAzure SQL DatabaseAzure SQL Managed InstanceAzure Synapse Analytics분석 플랫폼 시스템(PDW)Microsoft Fabric의 SQL 분석 엔드포인트Microsoft Fabric의 웨어하우스Microsoft Fabric의 SQL 데이터베이스

고유하게 컴파일된 스칼라 사용자 정의 함수를 포함하여 SQL Server의 SQL 언어 정의 모듈인 각 개체에 대한 행을 반환합니다. 형식P, ,RF, V, TRFN, IFTFR 및 관련 SQL 모듈의 개체입니다. 독립 실행형 기본값인 형식 D의 개체에도 이 보기에 SQL 모듈 정의가 있습니다. 이러한 형식에 대한 설명은 sys.objectstype열을 참조 하세요.

자세한 내용은 메모리 내 OLTP에 대한 사용자 정의 스칼라 함수를 참조하세요.

열 이름 데이터 형식 Description
object_id int 포함하는 개체의 개체 ID입니다. 데이터베이스 내에서 고유합니다.
definition nvarchar(max) 이 모듈을 정의하는 SQL 텍스트입니다. 이 값은 OBJECT_DEFINITION 기본 제공 함수를 사용하여 가져올 수도 있습니다.

NULL = 암호화됨.
uses_ansi_nulls bit 모듈이 .을 사용하여 SET ANSI_NULLS ON만들어졌습니다.

규칙 및 기본값은 항상 0 사용됩니다.
uses_quoted_identifier bit 모듈이 .을 사용하여 SET QUOTED_IDENTIFIER ON만들어졌습니다.
is_schema_bound bit 옵션을 사용하여 모듈을 SCHEMABINDING 만들었습니다.

고유하게 컴파일된 저장 프로시저의 1 값은 항상 포함됩니다.
uses_database_collation bit 1= 스키마 바인딩 모듈 정의는 올바른 평가를 위해 데이터베이스의 기본 데이터 정렬에 따라 달라집니다. 그렇지 않으면 . 0 이러한 종속성으로 인해 데이터베이스의 기본 데이터 정렬을 바꿀 수 없습니다.
is_recompiled bit 프로시저가 생성 WITH RECOMPILE 되었습니다.
null_on_null_input bit 모든 입력에 대한 출력을 생성하기 위해 모듈이 NULLNULL 선언되었습니다.
execute_as_principal_id Int 데이터베이스 보안 주체의 EXECUTE AS ID입니다.

NULL 기본적으로 또는 경우 EXECUTE AS CALLER.
지정된 보안 주체의 ID(if EXECUTE AS SELF 또는 EXECUTE AS <principal>.
-2 = EXECUTE AS OWNER.
uses_native_compilation bit 0 = 고유하게 컴파일되지 않음
1 = 고유하게 컴파일됨

기본값은 0입니다.

적용 대상: SQL Server 2014(12.x) 이상 버전.
is_inlineable bit 모듈을 인라인 처리할 수 있는지 여부를 나타냅니다. 인라인성은 요구 사항에 지정된 조건을 기반으로 합니다.

0 = 인라인할 수 없습니다.
1 = 인라인 처리할 수 있습니다.

스칼라 UDF(사용자 정의 함수)의 경우 값은 UDF를 인라인 처리할 수 있는 경우이고1, 그렇지 않으면 값입니다0. 인라인 TVF(테이블 반환 함수) 및 1 다른 모든 모듈 형식의 값 0 은 항상 포함됩니다.

적용 대상: SQL Server 2019(15.x) 이상 버전
inline_type bit 현재 모듈에 대해 인라인 처리가 설정되어 있는지 여부를 나타냅니다.
0 = 인라인이 꺼져 있습니다.
1 = 인라인이 켜져 있습니다.
UDF(스칼라 사용자 정의 함수)의 경우 값은 1 인라인이 켜져 있는 경우(명시적 또는 암시적으로) 입니다. 이 값은 항상 1 TVF(인라인 테이블 반환 함수) 및 0 다른 모듈 형식에 사용됩니다.

적용 대상: SQL Server 2019(15.x) 이상 버전

Remarks

제약 조건, 형식 DEFAULT개체에 대한 D SQL 식은 sys.default_constraints 카탈로그 뷰에 있습니다. 형식의 CHECK개체인 C 제약 조건에 대한 SQL 식은 sys.check_constraints 카탈로그 뷰에 있습니다.

이 정보는 sys.dm_db_uncontained_entities 설명합니다.

저장 프로시저, 함수, 뷰 또는 트리거의 이름을 바꾸면 카탈로그 뷰의 정의 열에 있는 해당 개체의 sys.sql_modules 이름이나 OBJECT_DEFINITION 기본 제공 함수에서 반환된 정의가 변경되지 않습니다. 따라서 이러한 개체 형식의 이름을 바꾸는 데는 사용하지 sp_rename 않는 것이 좋습니다. 대신 새 이름으로 개체를 삭제하고 다시 만듭니다. sp_rename 자세히 알아보세요.

Permissions

사용자가 소유하고 있거나 사용 권한을 부여 받은 보안 개체에 대해서만 카탈로그 뷰의 메타데이터를 볼 수 있습니다. 자세한 내용은 Metadata Visibility Configuration을 참조하세요.

Examples

다음 예제에서는 현재 데이터베이스에 있는 각 모듈의 object_id, 스키마 이름, 개체 이름, 개체 형식 및 정의를 반환합니다.

SELECT sm.object_id,
       ss.[name] AS [schema],
       o.[name] AS object_name,
       o.[type],
       o.[type_desc],
       sm.[definition]
FROM sys.sql_modules AS sm
     INNER JOIN sys.objects AS o
         ON sm.object_id = o.object_id
     INNER JOIN sys.schemas AS ss
         ON o.schema_id = ss.schema_id
ORDER BY o.[type], ss.[name], o.[name];