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 рекомендуемые длины типов данных для столбцов типов данных varchar в внешних таблицах могут быть гораздо больше, чем ожидалось. Это сделано намеренно.

Синонимы Oracle не поддерживаются для использования с PolyBase.

Примеры

В следующем примере возвращаются столбцы таблицы для внешней таблицы в именованном SQL Server, относящемся к схеме с именемserverschema.

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