sp_data_source_table_columns(Transact-SQL)
적용 대상: SQL Server 2019(15.x)
외부 데이터 원본 테이블의 열 목록을 반환합니다.
참고 항목
이 절차는 SQL 2019 CU5에서 도입되었습니다.
구문
sp_data_source_table_columns
[ @data_source = ] 'data_source'
, [ @table_location = ] 'table_location'
[ ; ]
인수
[ @data_source = ] 'data_source'
메타데이터를 가져올 외부 데이터 원본의 이름입니다. 형식은 .입니다 sysname
.
[ @table_location = ] 'table_location'
테이블을 식별하는 테이블 위치 문자열입니다. table_location
형식은 .입니다 nvarchar(max)
.
결과 집합
저장 프로시저는 다음 정보를 반환합니다.
열 이름 | 데이터 형식 | 설명 |
---|---|---|
name |
nvarchar(max) | 열의 이름입니다. |
type |
nvarchar(200) | SQL Server 유형 이름입니다. |
length |
int | 열의 길이입니다. |
precision |
int | 열의 전체 자릿수입니다. |
scale |
int | 열의 배율입니다. |
collation |
nvarchar(200) | 열의 SQL Server 데이터 정렬입니다. |
is_nullable |
bit | 1 = nullable, 0 = nullable이 아닙니다. |
source_type_name |
nvarchar(max) | 백 엔드별 형식 이름입니다. 디버깅에 주로 사용됩니다. ODBC 원본의 source_type_name 경우 .에 대한 결과 열에 TYPE_NAME SQLColumns() 해당합니다. |
remarks |
nvarchar(max) | 열에 대한 일반적인 주석 또는 설명입니다. 현재는 항상 NULL . |
사용 권한
ALTER ANY EXTERNAL DATA SOURCE 권한이 필요합니다.
설명
SQL Server 인스턴스에는 PolyBase 기능이 설치되어 있어야 합니다.
이 저장 프로시저는 다음을 위한 커넥터를 지원합니다.
- SQL Server
- Oracle
- Teradata
- MongoDB
- Azure Cosmos DB
저장 프로시저는 일반 ODBC 데이터 원본 또는 Hadoop 커넥터를 지원하지 않습니다.
비어 있거나 비어있지 않은 개념이 ODBC 드라이버 및 함수의 동작과 SQLTables
관련이 있습니다. 비어 있지 않음은 개체에 행이 아닌 테이블이 포함되어 있음을 나타냅니다. 예를 들어 빈 스키마에는 SQL Server에 테이블이 없습니다. 빈 데이터베이스에는 Teradata 내에 테이블이 없습니다. 결과는 백 엔드에 대한 PolyBase 커넥터에서 해석한 백 엔드 스키마의 SQL Server 표현입니다. 여기서 차이점은 ODBC 호출 결과를 백 엔드에 전달하는 대신 PolyBase 형식 매핑 코드의 결과를 기반으로 한다는 것입니다.
sp_data_source_table_columns
외부 개체를 사용하고 sp_data_source_objects
검색합니다. 이러한 시스템 저장 프로시저는 가상화할 수 있는 테이블의 스키마를 반환합니다. Azure Data Studio는 이러한 두 저장 프로시저를 사용하여 데이터 가상화를 지원합니다. SQL Server 데이터 형식에 표시되는 외부 테이블 스키마를 검색하는 데 사용합니다 sp_data_source_table_columns
.
Hadoop 원본 데이터의 데이터 정렬과 SQL Server 2019의 지원되는 데이터 정렬 간의 차이로 인해 외부 테이블의 varchar 데이터 형식 열에 권장되는 데이터 형식 길이가 예상보다 훨씬 클 수 있습니다. 이것은 의도적인 것입니다.
Oracle 동의어는 PolyBase 사용에서 지원되지 않습니다.
예제
다음 예제에서는 명명server
schema
된 스키마에 속하는 SQL Server의 외부 테이블에 대한 테이블 열을 반환합니다.
DECLARE @data_source SYSNAME = N'ExternalDataSourceName';
DECLARE @table_location NVARCHAR(400) = N'[database].[schema].[table]';
EXEC sp_data_source_table_columns @data_source, @table_location
관련 콘텐츠
피드백
https://aka.ms/ContentUserFeedback
출시 예정: 2024년 내내 콘텐츠에 대한 피드백 메커니즘으로 GitHub 문제를 단계적으로 폐지하고 이를 새로운 피드백 시스템으로 바꿀 예정입니다. 자세한 내용은 다음을 참조하세요.다음에 대한 사용자 의견 제출 및 보기