sp_special_columns(Transact-SQL)
적용 대상: SQL Server Azure SQL 데이터베이스 Azure SQL Managed Instance
테이블의 행을 고유하게 식별하는 최적의 열 집합을 반환합니다. 또한 행의 값이 트랜잭션에 의해 업데이트되면 자동으로 업데이트되는 열을 반환합니다.
구문
sp_special_columns
[ @table_name = ] N'table_name'
[ , [ @table_owner = ] N'table_owner' ]
[ , [ @table_qualifier = ] N'table_qualifier' ]
[ , [ @col_type = ] 'col_type' ]
[ , [ @scope = ] 'scope' ]
[ , [ @nullable = ] 'nullable' ]
[ , [ @ODBCVer = ] ODBCVer ]
[ ; ]
인수
[ @table_name = ] N'table_name'
카탈로그 정보를 반환하는 데 사용되는 테이블의 이름입니다. @table_name 기본값이 없는 sysname입니다. 와일드카드 패턴 일치는 지원되지 않습니다.
[ @table_owner = ] N'table_owner'
카탈로그 정보를 반환하는 데 사용되는 테이블의 테이블 소유자입니다. @table_owner sysname이며 기본값은 .입니다NULL
. 와일드카드 패턴 일치는 지원되지 않습니다. @table_owner 지정되지 않은 경우 기본 DBMS(데이터베이스 관리 시스템)의 기본 테이블 표시 유형 규칙이 적용됩니다.
SQL Server에서 현재 사용자가 지정된 이름의 테이블을 소유하는 경우 해당 테이블의 열이 반환됩니다. @table_owner 지정되지 않고 현재 사용자가 지정된 @table_name 테이블을 소유하지 않는 경우 이 절차에서는 데이터베이스 소유자가 소유한 지정된 @table_name 테이블을 찾습니다. 테이블이 있으면 해당 열이 반환됩니다.
[ @table_qualifier = ] N'table_qualifier'
테이블 한정자의 이름입니다. @table_qualifier sysname이며 기본값은 .입니다NULL
. 다양한 DBMS 제품은 테이블(<qualifier>.<owner>.<name>
)에 대해 세 부분으로 구성된 명명을 지원합니다. SQL Server에서 이 열은 데이터베이스 이름을 나타냅니다. 일부 제품에서는 테이블의 데이터베이스 환경 서버 이름을 나타냅니다.
[ @col_type = ] 'col_type'
열 형식입니다. @col_type 기본값R
인 char(1)입니다.
Type
R
은 열 또는 열에서 값을 검색하여 지정된 테이블의 모든 행을 고유하게 식별할 수 있는 최적의 열 또는 열 집합을 반환합니다. 열은 이 용도로 설계된 의사 열이거나 테이블에 대한 고유 인덱스의 열 또는 열일 수 있습니다.형식
V
은 행의 값이 트랜잭션에 의해 업데이트될 때 데이터 원본에 의해 자동으로 업데이트되는 지정된 테이블의 열(있는 경우)을 반환합니다.
[ @scope = ] 'scope'
ROWID의 최소 필수 범위입니다. @scope 기본값T
인 char(1)입니다.
- 범위
C
는 ROWID가 해당 행에 배치된 경우에만 유효하다고 지정합니다. - 범위
T
는 ROWID가 트랜잭션에 유효하다는 것을 지정합니다.
[ @nullable = ] 'nullable'
특수 열이 값을 수락 NULL
할 수 있는지 여부를 지정합니다. @nullable 기본값U
인 char(1)입니다.
O
은 null 값을 허용하지 않는 특수 열을 지정합니다.U
는 부분적으로 null 허용 열을 지정합니다.
[ @ODBCVer = ] ODBCVer
사용 중인 ODBC 버전입니다. @ODBCVer 기본값2
인 int입니다. 이 값은 ODBC 버전 2.0을 나타냅니다. ODBC 버전 2.0과 ODBC 버전 3.0의 차이점에 대한 자세한 내용은 ODBC 버전 3.0에 대한 ODBC SQLSpecialColumns
사양을 참조하세요.
반환 코드 값
없음
결과 집합
열 이름 | 데이터 형식 | 설명 |
---|---|---|
SCOPE |
smallint | 행 ID의 실제 범위입니다. 0 , 1 또는 2 일 수 있습니다. SQL Server는 항상 .0 이 필드는 항상 값을 반환합니다.0 = SQL_SCOPE_CURROW . 행 ID는 해당 행에 배치되는 동안에만 유효합니다. 행이 다른 트랜잭션에 의해 업데이트되거나 삭제된 경우 행 ID를 사용하여 나중에 다시 선택하면 행이 반환되지 않을 수 있습니다.1 = SQL_SCOPE_TRANSACTION . 행 ID는 현재 트랜잭션 기간 동안 유효합니다.2 = SQL_SCOPE_SESSION . 행 ID는 세션 기간 동안(트랜잭션 경계를 넘어) 유효하도록 보장됩니다. |
COLUMN_NAME |
sysname | 반환된 @table_name 각 열의 열 이름입니다. 이 필드는 항상 값을 반환합니다. |
DATA_TYPE |
smallint | ODBC SQL 데이터 형식입니다. |
TYPE_NAME |
sysname | 데이터 원본 종속 데이터 형식 이름; 예를 들어 char, varchar, money 또는 text입니다. |
PRECISION |
int | 데이터 원본의 행 전체 자릿수입니다. 이 필드는 항상 값을 반환합니다. |
LENGTH |
int | 데이터 원본의 이진 형식(예: char(10), 10 정수 및 2 smallint의 경우 데이터 형식에 필요한 길이(바이트)4 입니다. |
SCALE |
smallint | 데이터 원본의 열 크기 조정입니다. NULL 는 크기 조정을 적용할 수 없는 데이터 형식에 대해 반환됩니다. |
PSEUDO_COLUMN |
smallint | 열이 의사 열인지 여부를 나타냅니다. SQL Server는 항상 다음을 반환합니다.1 0 = SQL_PC_UNKNOWN 1 = SQL_PC_NOT_PSEUDO 2 = SQL_PC_PSEUDO |
설명
sp_special_columns
는 ODBC와 동일합니다 SQLSpecialColumns
. 반환되는 결과는 .에 의해 SCOPE
정렬됩니다.
사용 권한
스키마에 SELECT
대한 권한이 필요합니다.
예제
다음 예제에서는 테이블의 행을 고유하게 식별하는 열에 HumanResources.Department
대한 정보를 반환합니다.
USE AdventureWorks2022;
GO
EXEC sp_special_columns @table_name = 'Department',
@table_owner = 'HumanResources';