sys.objects(Transact-SQL)

적용 대상: Microsoft Fabric의 Microsoft Fabric Warehouse의 SQL Server Azure SQL DatabaseAzure SQL Managed InstanceAzure Synapse Analytics AnalyticsPlatform 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_NAMEOBJECTPROPERTY() 기본 제공 함수를 적용할 수 있습니다.

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

이 버전의 SQL Server XML 인덱스 또는 공간 인덱스와 같은 확장 인덱스는 의 내부 테이블 sys.objects 로 간주됩니다(형식 = IT 및 type_desc = INTERNAL_TABLE). 확장 인덱스에 대한 설명은 다음과 같습니다.

  • name은 인덱스 테이블의 내부 이름입니다.

  • parent_object_idobject_id 기본 테이블의 입니다.

  • is_ms_shippedis_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 JOIN sys.schemas AS s
    ON s.schema_id = xsc.schema_id
WHERE s.name = '<schema_name>';
GO

참고 항목