sys.objects(Transact-SQL)
적용 대상: Microsoft Fabric의 Microsoft Fabric
Warehouse의 SQL Server Azure SQL Database
Azure SQL Managed Instance
Azure Synapse Analytics Analytics
Platform System(PDW)
SQL 엔드포인트
고유하게 컴파일된 스칼라 사용자 정의 함수를 포함하여 데이터베이스 내에서 만들어지는 각 사용자 정의 스키마 범위 개체에 대한 행을 포함합니다.
자세한 내용은 메모리 내 OLTP에 대한 사용자 정의 스칼라 함수를 참조하세요.
참고
sys.objects
는 스키마 범위가 아니기 때문에 DDL 트리거를 표시하지 않습니다. DML 및 DDL의 모든 트리거는 sys.triggers에서 찾을 수 있습니다. sys.triggers
는 다양한 종류의 트리거에 대한 이름-범위 혼합 규칙을 지원합니다.
열 이름 | 데이터 형식 | Description |
---|---|---|
name | sysname | 개체 이름입니다. |
object_id | int | 개체 ID입니다. 데이터베이스 내에서 고유합니다. |
principal_id | int | 스키마 소유자와 다른 경우 개별 소유자의 ID입니다. 기본적으로 스키마에 포함된 개체는 스키마 소유자가 소유합니다. 그러나 ALTER AUTHORIZATION 문으로 대체 소유자를 지정하여 소유권을 변경할 수 있습니다. 대체 개별 소유자가 없으면 NULL입니다. 개체 형식이 다음 중 하나인 경우 NULL입니다. C = CHECK 제약 조건 D = DEFAULT(제약 조건 또는 독립 실행형) F = FOREIGN KEY 제약 조건 PK = PRIMARY KEY 제약 조건 R = 규칙(이전 스타일, 독립 실행형) TA = 어셈블리(CLR 통합) 트리거 TR = SQL 트리거 UQ = UNIQUE 제약 조건 EC = Edge 제약 조건 |
schema_id | int | 개체가 포함된 스키마의 ID입니다. 스키마 범위 시스템 개체는 항상 sys 또는 INFORMATION_SCHEMA 스키마에 포함됩니다. |
parent_object_id | int | 이 개체가 속하는 개체의 ID입니다. 0 = 자식 개체가 아닙니다. |
형식 | char(2) | 개체 유형: AF = 집계 함수(CLR) C = CHECK 제약 조건 D = DEFAULT(제약 조건 또는 독립 실행형) F = FOREIGN KEY 제약 조건 FN = SQL 스칼라 함수 FS = 어셈블리(CLR) 스칼라 함수 FT = 어셈블리(CLR) 테이블 반환 함수 IF = SQL 인라인 테이블 반환 함수 IT = 내부 테이블 P = SQL 저장 프로시저 PC = 어셈블리(CLR) 저장 프로시저 PG = 계획 지침 PK = PRIMARY KEY 제약 조건 R = 규칙(이전 스타일, 독립 실행형) RF = 복제 필터 프로시저 S = 시스템 기본 테이블 SN = 동의어 SO = 시퀀스 개체 U = 테이블(사용자 정의) V = 뷰 적용 대상: SQL Server 2012(11.x) 이상 SQ = 서비스 큐 TA = 어셈블리(CLR) DML 트리거 TF = SQL 테이블 반환 함수 TR = SQL DML 트리거 TT = 테이블 유형 UQ = UNIQUE 제약 조건 X = 확장 저장 프로시저 적용 대상: SQL Server 2014(12.x) 이상, Azure SQL 데이터베이스, Azure Synapse Analytics, 분석 플랫폼 시스템(PDW) ST = STATS_TREE 적용 대상: SQL Server 2016(13.x) 이상, Azure SQL Database, Azure Synapse Analytics, Analytics Platform System(PDW) ET = 외부 테이블 적용 대상: SQL Server 2017(14.x) 이상, Azure SQL 데이터베이스, Azure Synapse Analytics, 분석 플랫폼 시스템(PDW) EC = Edge 제약 조건 |
type_desc | nvarchar(60) | 개체 유형에 대한 설명: AGGREGATE_FUNCTION CHECK_CONSTRAINT CLR_SCALAR_FUNCTION CLR_STORED_PROCEDURE CLR_TABLE_VALUED_FUNCTION CLR_TRIGGER DEFAULT_CONSTRAINT EDGE_CONSTRAINT EXTENDED_STORED_PROCEDURE FOREIGN_KEY_CONSTRAINT INTERNAL_TABLE PLAN_GUIDE PRIMARY_KEY_CONSTRAINT REPLICATION_FILTER_PROCEDURE RULE SEQUENCE_OBJECT SERVICE_QUEUE SQL_INLINE_TABLE_VALUED_FUNCTION SQL_SCALAR_FUNCTION SQL_STORED_PROCEDURE SQL_TABLE_VALUED_FUNCTION SQL_TRIGGER SYNONYM SYSTEM_TABLE TYPE_TABLE UNIQUE_CONSTRAINT USER_TABLE VIEW |
create_date | datetime | 개체를 만든 날짜입니다. |
modify_date | datetime | ALTER 문을 사용하여 개체를 마지막으로 수정한 날짜입니다. 개체가 테이블 또는 뷰인 경우 테이블 또는 뷰의 인덱스가 만들어지거나 변경될 때도 modify_date 변경됩니다. |
is_ms_shipped | bit | 개체는 내부 SQL Server 구성 요소에 의해 만들어집니다. |
is_published | bit | 개체가 게시됩니다. |
is_schema_published | bit | 개체의 스키마만 게시됩니다. |
설명
에 표시된 sys.objects
개체에 OBJECT_ID, OBJECT_NAME 및 OBJECTPROPERTY() 기본 제공 함수를 적용할 수 있습니다.
시스템 개체를 표시하는 동일한 스키마( sys.system_objects)가 있는 이 보기의 버전이 있습니다. 시스템 및 사용자 개체를 모두 보여 주는 sys.all_objects 라는 또 다른 보기가 있습니다. 세 카탈로그 뷰 모두 구조가 같습니다.
이 버전의 SQL Server XML 인덱스 또는 공간 인덱스와 같은 확장 인덱스는 의 내부 테이블 sys.objects
로 간주됩니다(형식 = IT 및 type_desc = INTERNAL_TABLE). 확장 인덱스에 대한 설명은 다음과 같습니다.
name
은 인덱스 테이블의 내부 이름입니다.parent_object_id
는object_id
기본 테이블의 입니다.is_ms_shipped
및is_published
is_schema_published
열은 로0
설정됩니다.
관련 유용한 시스템 보기
개체의 하위 집합은 다음과 같은 특정 개체 유형에 대한 시스템 뷰를 사용하여 볼 수 있습니다.
사용 권한
사용자가 소유하고 있거나 사용 권한을 부여 받은 보안 개체에 대해서만 카탈로그 뷰의 메타데이터를 볼 수 있습니다. 자세한 내용은 Metadata Visibility Configuration을 참조하세요.
예제
A. 지난 N일 동안 수정된 모든 개체를 반환합니다.
다음 쿼리를 실행하기 전에 <database_name>
및 <n_days>
를 올바른 값으로 대체합니다.
USE <database_name>;
GO
SELECT name AS object_name
,SCHEMA_NAME(schema_id) AS schema_name
,type_desc
,create_date
,modify_date
FROM sys.objects
WHERE modify_date > GETDATE() - <n_days>
ORDER BY modify_date;
GO
B. 지정된 저장 프로시저 또는 함수에 대한 매개 변수 반환
다음 쿼리를 실행하기 전에 <database_name>
및 <schema_name.object_name>
을 올바른 이름으로 대체합니다.
USE <database_name>;
GO
SELECT SCHEMA_NAME(schema_id) AS schema_name
,o.name AS object_name
,o.type_desc
,p.parameter_id
,p.name AS parameter_name
,TYPE_NAME(p.user_type_id) AS parameter_type
,p.max_length
,p.precision
,p.scale
,p.is_output
FROM sys.objects AS o
INNER JOIN sys.parameters AS p ON o.object_id = p.object_id
WHERE o.object_id = OBJECT_ID('<schema_name.object_name>')
ORDER BY schema_name, object_name, p.parameter_id;
GO
C. 데이터베이스의 모든 사용자 정의 함수 반환
다음 쿼리를 실행하기 전에 <database_name>
을 올바른 데이터베이스 이름으로 대체합니다.
USE <database_name>;
GO
SELECT name AS function_name
,SCHEMA_NAME(schema_id) AS schema_name
,type_desc
,create_date
,modify_date
FROM sys.objects
WHERE type_desc LIKE '%FUNCTION%';
GO
D. 스키마에 있는 각 개체의 소유자를 반환합니다.
다음 쿼리를 실행하기 전에 모든 <database_name>
및 <schema_name>
을 올바른 이름으로 대체합니다.
USE <database_name>;
GO
SELECT 'OBJECT' AS entity_type
,USER_NAME(OBJECTPROPERTY(object_id, 'OwnerId')) AS owner_name
,name
FROM sys.objects WHERE SCHEMA_NAME(schema_id) = '<schema_name>'
UNION
SELECT 'TYPE' AS entity_type
,USER_NAME(TYPEPROPERTY(SCHEMA_NAME(schema_id) + '.' + name, 'OwnerId')) AS owner_name
,name
FROM sys.types WHERE SCHEMA_NAME(schema_id) = '<schema_name>'
UNION
SELECT 'XML SCHEMA COLLECTION' AS entity_type
,COALESCE(USER_NAME(xsc.principal_id),USER_NAME(s.principal_id)) AS owner_name
,xsc.name
FROM sys.xml_schema_collections AS xsc JOIN sys.schemas AS s
ON s.schema_id = xsc.schema_id
WHERE s.name = '<schema_name>';
GO