sp_data_source_table_columns (Transact-SQL)
Область применения: SQL Server 2019 (15.x)
Возвращает список столбцов во внешней таблице источника данных.
Примечание.
Эта процедура представлена в SQL 2019 CU5.
Соглашения о синтаксисе Transact-SQL
Синтаксис
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)
Результирующий набор
Хранимая процедура возвращает следующие сведения:
Имя столбца | Тип данных | Description |
---|---|---|
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 = not 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. Результаты — это представление серверной схемы SQL Server, интерпретируемое соединителем PolyBase для серверной части. Различие заключается в том, что вместо простой передачи результатов вызова ODBC серверной части результаты основаны на результатах кода сопоставления типов PolyBase.
Используйте sp_data_source_objects и sp_data_source_table_columns
для обнаружения внешних объектов. Эти системные хранимые процедуры возвращают схему таблиц, доступных для виртуализации. Azure Data Studio использует эти две хранимые процедуры для поддержки виртуализации данных. Используется sp_data_source_table_columns
для обнаружения схем внешней таблицы, представленных в типах данных SQL Server.
Из-за различий между параметрами сортировки в исходных данных Hadoop и поддерживаемыми параметрами сортировки в SQL Server 2019 (15.x) рекомендуемая длина типов данных для столбцов типа данных varchar во внешних таблицах может быть гораздо больше, чем ожидалось. Это сделано намеренно.
Синонимы Oracle не поддерживаются для использования с PolyBase.
Примеры
В следующем примере возвращаются столбцы таблицы для внешней таблицы в именованном SQL Server, относящемся к схеме с именемserver
schema
.
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;