다음을 통해 공유


sys.columns(Transact-SQL)

적용 대상: SQL Server Azure SQL Database Azure SQL Managed Instance Azure Synapse Analytics Analytics Platform System(PDW) Microsoft Fabric의 SQL 분석 엔드포인트 Microsoft Fabric의 웨어하우스

뷰 또는 테이블과 같이 열을 갖고 있는 개체의 각 열에 대한 행을 반환합니다. 다음 목록에는 열이 있는 개체 형식이 포함되어 있습니다.

  • FT(테이블 반환 어셈블리 함수)
  • 인라인 테이블 반환 SQL 함수(IF)
  • IT(내부 테이블)
  • 시스템 테이블(S)
  • 테이블 반환 SQL 함수(TF)
  • 사용자 테이블(U)
  • 보기(V)
열 이름 데이터 형식 설명
object_id int 이 열이 속한 개체의 ID입니다.
name sysname 열의 이름입니다. 개체 내에서 고유합니다.
column_id int 열의 ID입니다. 개체 내에서 고유합니다. 열 ID는 순차적이지 않을 수 있습니다.
system_type_id tinyint 열의 시스템 유형 ID입니다.
user_type_id int 사용자가 정의한 열 형식의 ID입니다. 유형의 이름을 반환하려면 이 열에서 sys.types 카탈로그 뷰에 조인합니다.
max_length smallint 열의 최대 길이(바이트)입니다.

-1= 열 데이터 형식은 varchar(max), nvarchar(max), varbinary(max) 또는 xml입니다.

텍스트, ntext이미지 열의 max_length 경우 값은 (16 바이트 포인터만 표시) 또는 로 설정된 sp_tableoption 'text in row'값입니다 16 .
precision tinyint 숫자 기반인 경우 열의 전체 자릿수입니다. 그렇지 않으면 . 0
scale tinyint 숫자 기반인 경우 열의 소수 자릿수입니다. 그렇지 않으면 . 0
collation_name sysname 문자 기반일 경우에는 열의 데이터 정렬 이름이고, 그렇지 않으면 NULL입니다.
is_nullable bit 1 = 열이 null 허용
0 = 열이 null을 허용하지 않음
is_ansi_padded bit 1 = 열은 문자, 이진 또는 변형인 경우 동작을 사용합니다 ANSI_PADDING ON .

0 = 열이 문자, 이진 또는 변형이 아닙니다.
is_rowguidcol bit 1 = 열이 선언됨 ROWGUIDCOL
is_identity bit 1 = 열에 ID 값이 있습니다.
is_computed bit 1 = 열이 계산 열입니다.
is_filestream bit 1 = 열이 FILESTREAM 열입니다.
is_replicated bit 1 = 열이 복제됨
is_non_sql_subscribed bit 1 = 열에 SQL Server 이외 구독자가 있음
is_merge_published bit 1 = 열이 병합 게시됨
is_dts_replicated bit 1 = SSIS를 사용하여 열이 복제됨
is_xml_document bit 1 = 콘텐츠가 전체 XML 문서입니다.

0= 콘텐츠가 문서 조각이거나 열 데이터 형식이 xml이 아닌 경우
xml_collection_id int 열의 데이터 유형이 xml이고 XML이 입력되면 이 값은 0이 아닙니다. 값은 열의 유효성 검사 XML 스키마 네임스페이스를 포함하는 컬렉션의 ID입니다.

0 = XML 스키마 컬렉션 없음
default_object_id int 독립 실행형 개체 sp_bindefault 또는 인라인 열 수준 DEFAULT 제약 조건인지에 관계없이 기본 개체의 ID입니다. 인라인 열 수준 기본 개체의 parent_object_id 열은 테이블 자체에 대한 역참조입니다.

0 = 기본값 없음
rule_object_id int 를 사용하여 열에 바인딩된 독립 실행형 규칙의 ID sys.sp_bindrule.

0 = 독립 실행형 규칙이 없습니다. 열 수준 CHECK 제약 조건은 sys.check_constraints 참조하세요.
is_sparse bit 1 = 열이 스파스 열입니다. 자세한 내용은 스파스 열 사용을 참조 하세요.
is_column_set bit 1 = 열이 열 집합입니다. 자세한 내용은 스파스 열 사용을 참조 하세요.
generated_always_type tinyint 열 값이 생성되는 시기를 식별합니다(시스템 테이블의 열에 대해 항상 0 사용됨).

적용 대상: SQL Server 2016(13.x) 이상 버전 및 SQL Database.

0 = NOT_APPLICABLE
1 = AS_ROW_START
2 = AS_ROW_END

적용 대상: SQL Server 2022(16.x) 이상 버전 및 SQL Database.

5 = AS_TRANSACTION_ID_START
6 = AS_TRANSACTION_ID_END
7 = AS_SEQUENCE_NUMBER_START
8 = AS_SEQUENCE_NUMBER_END

자세한 내용은 임시 테이블(관계형 데이터베이스)을 참조하세요.
generated_always_type_desc nvarchar(60) 값에 generated_always_type 대한 텍스트 설명(시스템 NOT_APPLICABLE 테이블의 열에 항상 해당)

적용 대상: SQL Server 2016(13.x) 이상 버전 및 SQL Database.

NOT_APPLICABLE
AS_ROW_START
AS_ROW_END

적용 대상: SQL Server 2022(16.x) 이상 버전 및 SQL Database.

AS_TRANSACTION_ID_START
AS_TRANSACTION_ID_END
AS_SEQUENCE_NUMBER_START
AS_SEQUENCE_NUMBER_END
encryption_type int 암호화 유형:

1 = 결정적 암호화
2 = 임의 암호화

적용 대상: SQL Server 2016(13.x) 이상 버전 및 SQL Database
encryption_type_desc nvarchar(64) 암호화 유형 설명:

RANDOMIZED
DETERMINISTIC

적용 대상: SQL Server 2016(13.x) 이상 버전 및 SQL Database
encryption_algorithm_name sysname 암호화 알고리즘의 이름입니다. AEAD_AES_256_CBC_HMAC_SHA_512만 지원됩니다.

적용 대상: SQL Server 2016(13.x) 이상 버전 및 SQL Database
column_encryption_key_id int CEK(열 암호화 키)의 ID입니다.

적용 대상: SQL Server 2016(13.x) 이상 버전 및 SQL Database
column_encryption_key_database_name sysname 열의 데이터베이스와 다른 경우 열 암호화 키가 있는 데이터베이스의 이름입니다. 키가 열과 동일한 데이터베이스에 있으면 NULL입니다.

적용 대상: SQL Server 2016(13.x) 이상 버전 및 SQL Database
is_hidden bit 열이 숨겨지는지 여부를 나타냅니다.

0 = 일반, 숨겨지지 않은 표시 열
1 = 숨겨진 열

적용 대상: SQL Server 2016(13.x) 이상 버전 및 SQL Database
is_masked bit 열이 동적 데이터 마스킹으로 마스킹되는지를 나타냅니다.

0 = 마스킹되지 않은 일반 열
1 = 열이 마스킹됨

적용 대상: SQL Server 2016(13.x) 이상 버전 및 SQL Database
graph_type int 값 집합이 있는 내부 열입니다. 값은 그래프 열과 8 다른 열 간의 1 값입니다NULL.
graph_type_desc nvarchar(60) 정보를 제공하기 위해서만 확인됩니다. 지원 안 됨. 향후 호환성은 보장되지 않습니다.
is_data_deletion_filter_column bit 열이 테이블의 데이터 보존 필터 열인지 여부를 나타냅니다.

적용 대상: Azure SQL Edge
ledger_view_column_type int 그렇지 않은 NULL경우 원장 보기의 열 형식을 나타냅니다.

1 = TRANSACTION_ID
2 = SEQUENCE_NUMBER
3 = OPERATION_TYPE
4 = OPERATION_TYPE_DESC

자세한 내용은 원장 개요를 참조하세요.

적용 대상: SQL Server 2022(16.x) 이상 버전 및 SQL Database
ledger_view_column_type_desc nvarchar(60) 그렇지 않은 NULL경우 원장 보기의 열 형식에 대한 텍스트 설명을 포함합니다.

TRANSACTION_ID
SEQUENCE_NUMBER
OPERATION_TYPE
OPERATION_TYPE_DESC

적용 대상: SQL Server 2022(16.x) 이상 버전 및 SQL Database
is_dropped_ledger_column bit 삭제된 원장 테이블 열을 나타냅니다.

적용 대상: SQL Server 2022(16.x) 이상 버전 및 SQL Database

사용 권한

사용자가 소유하고 있거나 사용 권한을 부여 받은 보안 개체에 대해서만 카탈로그 뷰의 메타데이터를 볼 수 있습니다. 자세한 내용은 Metadata Visibility Configuration을 참조하세요.

사용 예

테이블에 대한 열 세부 정보 가져오기

테이블의 열에 대한 메타데이터를 얻으려면 다음 코드를 사용할 수 있습니다.

CREATE TABLE dbo.[sample] (
    id INT NOT NULL
    ,col1 VARBINARY(10) NULL
    )
GO

SELECT c.[name] AS column_name
    ,t.[name] AS [type_name]
    ,c.[max_length]
    ,c.[precision]
    ,c.[scale]
FROM sys.columns c
INNER JOIN sys.types t ON c.user_type_id = t.user_type_id
WHERE object_id = object_id('dbo.sample');