OBJECT_DEFINITION(Transact-SQL)
적용 대상: SQL Server Azure SQL 데이터베이스 Azure SQL Managed Instance
지정된 개체의 정의에 대한 Transact-SQL 원본 텍스트를 반환합니다.
구문
OBJECT_DEFINITION ( object_id )
인수
object_id
사용할 개체의 ID입니다. object_id은 int이며 현재 데이터베이스 컨텍스트에 개체가 있다고 간주합니다.
반환 형식
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_ddladmin및 db_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)