sys.sql_modules(Transact-SQL)
적용 대상: SQL Server Azure SQL Database Azure SQL Managed Instance Azure Synapse Analytics Analytics Platform System(PDW) Microsoft Fabric의 SQL 분석 엔드포인트 Microsoft Fabric의 웨어하우스
고유하게 컴파일된 스칼라 사용자 정의 함수를 포함하여 SQL Server의 SQL 언어 정의 모듈인 각 개체에 대한 행을 반환합니다. P, RF, V, TR, FN, IF, TF 및 R 형식의 개체에는 연결된 SQL 모듈이 있습니다. 독립 실행형 기본값인 D 형식의 개체에도 이 보기에 SQL 모듈 정의가 있습니다. 이러한 형식에 대한 설명은 sys.objects 카탈로그 뷰의 열을 참조 type
하세요.
자세한 내용은 메모리 내 OLTP에 대한 사용자 정의 스칼라 함수를 참조하세요.
열 이름 | 데이터 형식 | 설명 |
---|---|---|
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 | 모든 입력에 대한 출력을 생성하기 위해 모듈이 NULL NULL 선언되었습니다. |
execute_as_principal_id | 정수 | EXECUTE AS 데이터베이스 보안 주체의 ID입니다.NULL 기본적으로 또는 EXECUTE AS CALLER인 경우EXECUTE AS SELF 또는 EXECUTE AS <보안 주체인 경우 지정된 보안 주체의 ID입니다>. -2 = 소유자로 실행합니다. |
uses_native_compilation | bit | 적용 대상: SQL Server 2014(12.x)~SQL Server 2014(12.x). 0 = 고유하게 컴파일되지 않음 1 = 고유 컴파일 기본값은 0입니다. |
is_inlineable | bit | 적용 대상: SQL Server 2019 (15.x) 이상 모듈을 인라인으로 사용할 수 있는지 여부를 나타냅니다. 인라인성은 여기에 지정된 조건을 기반으로 합니다. 0 = 인라인 불가능 1 = 인라인화할 수 있습니다. UDF(스칼라 사용자 정의 함수)의 경우 UDF를 인라인화할 수 있으면 값이 1이고, 그렇지 않으면 0이 됩니다. 항상 TVF(인라인 테이블 반환 함수)의 경우 1, 다른 모든 모듈 형식의 경우 0 값을 포함합니다. |
inline_type | bit | 적용 대상: SQL Server 2019 (15.x) 이상 현재 모듈에 대해 인라인 처리가 설정되어 있는지 여부를 나타냅니다. 0 = 인라인이 꺼져 있습니다. 1 = 인라인이 켜져 있습니다. UDF(스칼라 사용자 정의 함수)의 경우 인라인이 켜져 있는 경우(명시적 또는 암시적으로) 값이 1이 됩니다. 값은 항상 TVF(인라인 테이블 반환 함수)의 경우 1이고 다른 모듈 형식의 경우 0입니다. |
설명
D 형식의 개체인 DEFAULT 제약 조건에 대한 SQL 식은 sys.default_constraints 카탈로그 뷰에 있습니다. CHECK 제약 조건의 SQL 식( C 형식의 개체)은 sys.check_constraints 카탈로그 뷰에 있습니다.
이 정보는 sys.dm_db_uncontained_entities(Transact-SQL)에도 설명되어 있습니다.
저장 프로시저, 함수, 뷰 또는 트리거의 이름을 바꾸면 카탈로그 뷰의 정의 열에 있는 해당 개체의 sys.sql_modules
이름이나 OBJECT_DEFINITION 기본 제공 함수에서 반환된 정의가 변경되지 않습니다. 따라서 이러한 개체 형식의 이름을 바꾸는 데는 사용하지 않는 것이 좋습니다 sp_rename
. 대신 해당 개체를 삭제하고 새 이름으로 개체를 다시 만듭니다. sp_rename(Transact-SQL)에서 자세히 알아보세요.
사용 권한
사용자가 소유하고 있거나 사용 권한을 부여 받은 보안 개체에 대해서만 카탈로그 뷰의 메타데이터를 볼 수 있습니다. 자세한 내용은 Metadata Visibility Configuration을 참조하세요.
예제
다음 예제에서는 현재 데이터베이스에 있는 각 모듈의 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
JOIN sys.objects AS o
ON sm.object_id = o.object_id
JOIN sys.schemas AS ss
ON o.schema_id = ss.schema_id
ORDER BY
o.[type]
, ss.[name]
, o.[name];
참고 항목
카탈로그 보기(Transact-SQL)
개체 카탈로그 뷰(Transact-SQL)
SQL Server 시스템 카탈로그 쿼리 FAQ
메모리 내 OLTP(메모리 내 최적화)