sys.objects(Transact-SQL)

적용 대상:SQL ServerAzure SQL DatabaseAzure SQL Managed InstanceAzure Synapse AnalyticsAnalytics Platform System(PDW)Microsoft Fabric의 SQL 분석 엔드포인트Microsoft Fabric의 Warehouse

고유하게 컴파일된 스칼라 사용자 정의 함수를 포함하여 데이터베이스 내에서 만들어진 각 사용자 정의 스키마 범위 개체에 대한 행을 포함합니다.

자세한 내용은 메모리 내 OLTP에 대한 사용자 정의 스칼라 함수를 참조하세요.

참고 항목

sys.objects 는 스키마 범위가 아니므로 DDL 트리거를 표시하지 않습니다. DML 및 DDL의 모든 트리거는 sys.triggers에서 찾을 수 있습니다. sys.triggers 는 다양한 종류의 트리거에 대한 이름 범위 지정 규칙의 혼합을 지원합니다.

열 이름 데이터 형식 설명
name sysname 개체 이름입니다.
object_id int 개체 ID 번호입니다. 데이터베이스 내에서 고유합니다.
principal_id int 스키마 소유자와 다른 경우 개별 소유자의 ID입니다. 기본적으로 스키마가 포함된 개체는 스키마 소유자가 소유합니다. 그러나 대체 소유자는 문을 사용하여 소유권을 ALTER AUTHORIZATION 변경하여 지정할 수 있습니다.

NULL 대체 개별 소유자가 없으면 입니다.

NULL 개체 형식이 다음 값 중 하나인 경우입니다.

C = Check 제약 조건
D = 기본값(제약 조건 또는 독립 실행형)
F = 외래 키 제약 조건
PK = 기본 키 제약 조건
R = 규칙(이전 스타일, 독립 실행형)
TA = 어셈블리(CLR 통합) 트리거
TR = SQL 트리거
UQ = Unique 제약 조건
EC = Edge 제약 조건
schema_id int 개체가 포함된 스키마의 ID입니다.

스키마 범위 시스템 개체는 항상 sys 또는 INFORMATION_SCHEMA 스키마에 포함됩니다.
parent_object_id int 이 개체가 속하는 개체의 ID입니다.

0 = 자식 개체가 아닙니다.
type char(2) 개체 유형:

AF = 집계 함수(CLR)
C = Check 제약 조건
D = 기본값(제약 조건 또는 독립 실행형)
F = 외래 키 제약 조건
FN = SQL 스칼라 함수
FS = 어셈블리(CLR) 스칼라 함수
FT = 어셈블리(CLR) 테이블 반환 함수
IF = SQL TVF(인라인 테이블 반환 함수)
IT = 내부 테이블
P = SQL 저장 프로시저
PC = 어셈블리(CLR) 저장 프로시저
PG = 계획 가이드
PK = 기본 키 제약 조건
R = 규칙(이전 스타일, 독립 실행형)
RF = Replication-filter-procedure
S = 시스템 기본 테이블
SN = 동의어
SO = Sequence 개체
U = 테이블(사용자 정의)
V = 보기

적용 대상: SQL Server 2012(11.x) 이상 버전

SQ = 서비스 큐
TA = 어셈블리(CLR) DML 트리거
TF = SQL 테이블 반환 함수(TVF)
TR = SQL DML 트리거
TT = 테이블 형식
UQ = 고유 제약 조건
X = 확장 저장 프로시저

적용 대상: SQL Server 2014(12.x) 이상 버전, Azure SQL Database, Azure Synapse Analytics, Analytics Platform System(PDW)

ST = 통계 트리

적용 대상: SQL Server 2016(13.x) 이상 버전, Azure SQL Database, Azure Synapse Analytics, Analytics Platform System(PDW)

ET = 외부 테이블

적용 대상: SQL Server 2017(14.x) 이상 버전, Azure SQL Database, Azure Synapse Analytics, Analytics Platform System(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 날짜/시간 개체를 만든 날짜입니다.
modify_date 날짜/시간 문을 사용하여 개체를 마지막으로 수정한 날짜입니다 ALTER . 개체가 테이블 또는 뷰인 경우 테이블 또는 뷰의 인덱스가 만들어지거나 변경될 때도 modify_date 변경됩니다.
is_ms_shipped bit 개체는 내부 SQL Server 구성 요소에 의해 만들어집니다.
is_published bit 개체가 게시됩니다.
is_schema_published bit 개체의 스키마만 게시됩니다.

설명

OBJECT_ID, OBJECT_NAME 및 OBJECTPROPERTY 기본 제공 함수를 표시된 개체에 적용할 수 있습니다sys.objects.

시스템 개체를 보여 주는 sys.system_objects 같은 스키마가 있는 이 보기의 버전이 있습니다. sys.all_objects라는 또 다른 보기는 시스템 및 사용자 개체를 모두 표시합니다. 세 카탈로그 뷰 모두 구조가 동일합니다.

이 버전의 SQL Server에서는 XML 인덱스 또는 공간 인덱스와 같은 확장 인덱스가 내부 테이블 sys.objects 로 간주됩니다.typeITtype_descINTERNAL_TABLE 확장 인덱스:

  • name 인덱스 테이블의 내부 이름입니다.
  • parent_object_idobject_id 기본 테이블의
  • is_ms_shipped, is_publishedis_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
INNER JOIN sys.schemas AS s
    ON s.schema_id = xsc.schema_id
WHERE s.name = '<schema_name>';
GO