다음을 통해 공유


OBJECT_DEFINITION(Transact-SQL)

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

항목 링크 아이콘Transact-SQL 구문 표기 규칙

구문

OBJECT_DEFINITION ( object_id )

인수

  • object_id
    사용할 개체의 ID입니다. object_id는 int이며 현재 데이터베이스 컨텍스트에서 개체를 표현하는 것으로 가정됩니다.

반환 유형

nvarchar(max)

예외

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

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

주의

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 고정 데이터베이스 역할의 멤버가 암시적으로 보유합니다.

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

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

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

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

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

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