OBJECT_DEFINITION(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_ddladmin 및 db_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