다음을 통해 공유


OBJECT_DEFINITION(Transact-SQL)

적용 대상: SQL Server Azure SQL 데이터베이스 Azure SQL Managed Instance

지정된 개체의 정의에 대한 Transact-SQL 원본 텍스트를 반환합니다.

Transact-SQL 구문 표기 규칙

구문

OBJECT_DEFINITION ( object_id )  

인수

object_id
사용할 개체의 ID입니다. object_idint이며 현재 데이터베이스 컨텍스트에 개체가 있다고 간주합니다.

반환 형식

nvarchar(max)

예외

오류가 발생하거나 호출자가 개체를 볼 수 있는 권한을 갖고 있지 않으면 NULL을 반환합니다.

사용자는 소유하고 있거나 사용 권한을 부여 받은 보안 개체의 메타데이터만 볼 수 있습니다. 즉, 사용자가 개체에 대한 사용 권한이 없으면 OBJECT_DEFINITION과 같은 메타데이터 내보내기 기본 제공 함수가 NULL을 반환합니다. 자세한 내용은 Metadata Visibility Configuration을 참조하세요.

설명

SQL Server 데이터베이스 엔진에서는 object_id가 현재 데이터베이스 컨텍스트에 있다고 가정합니다. 개체 정의의 데이터 정렬은 항상 호출하는 데이터베이스 컨텍스트의 데이터 정렬과 일치합니다.

OBJECT_DEFINITION은 다음 개체 유형에 적용됩니다.

  • C = CHECK 제약 조건

  • D = DEFAULT(제약 조건 또는 독립 실행형)

  • P = SQL 저장 프로시저

  • FN = SQL 스칼라 함수

  • R = 규칙

  • RF = 복제 필터 프로시저

  • TR = SQL 트리거(스키마 범위 DML 트리거 또는 데이터베이스나 서버 범위 DDL 트리거)

  • IF = SQL 인라인 테이블 반환 함수

  • TF = SQL 테이블 반환 함수

  • V = 뷰

사용 권한

시스템 개체 정의는 공개적으로 표시됩니다. 개체 소유자나 ALTER, CONTROL, TAKE OWNERSHIP 또는 VIEW DEFINITION 권한 중 하나를 부여받은 사람은 사용자 개체 정의를 볼 수 있습니다. 이 권한은 db_owner, db_ddladmindb_securityadmin 고정 데이터베이스 역할의 멤버가 암시적으로 보유합니다.

A. 사용자 정의 개체의 원본 텍스트 반환

다음 예에서는 uAddress 스키마의 사용자 정의 트리거인 Person에 대한 정의를 반환합니다. 기본 제공 함수 OBJECT_ID는 트리거의 개체 ID를 OBJECT_DEFINITION 문에 반환하는 데 사용됩니다.

USE AdventureWorks2022;  
GO  
SELECT OBJECT_DEFINITION (OBJECT_ID(N'Person.uAddress')) AS [Trigger Definition];   
GO  

B. 시스템 개체의 원본 텍스트 반환

다음 예에서는 시스템 저장 프로시저 sys.sp_columns의 정의를 반환합니다.

USE AdventureWorks2022;  
GO  
SELECT OBJECT_DEFINITION (OBJECT_ID(N'sys.sp_columns')) AS [Object Definition];  
GO  

참고 항목

메타데이터 함수(Transact-SQL)
OBJECT_NAME(Transact-SQL)
OBJECT_ID(Transact-SQL)
sp_helptext(Transact-SQL)
sys.sql_modules(Transact-SQL)
sys.server_sql_modules(Transact-SQL)