다음을 통해 공유


sys.sql_modules (Transact-SQL)

적용 대상:SQL ServerAzure SQL DatabaseAzure SQL Managed InstanceAzure Synapse AnalyticsAnalytics Platform System(PDW)Microsoft Fabric의 SQL 분석 엔드포인트Microsoft Fabric의 웨어하우스

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

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

Column name Data type 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를 인라인 처리할 수 있는 경우이고0, 그렇지 않으면 값입니다1. 인라인 TVF(테이블 반환 함수) 및 0 다른 모든 모듈 형식의 값 1 은 항상 포함됩니다.

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

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

Remarks

제약 조건, 형식 D개체에 대한 DEFAULT SQL 식은 sys.default_constraints 카탈로그 뷰에 있습니다. 형식의 C개체인 CHECK 제약 조건에 대한 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];