Share via


sp_data_source_table_columns (Transact-SQL)

Gilt für: SQL Server 2019 (15.x)

Gibt die Liste der Spalten in der externen Datenquellentabelle zurück.

Hinweis

Dieses Verfahren wird in SQL 2019 CU5 eingeführt.

Transact-SQL-Syntaxkonventionen

Syntax

sp_data_source_table_columns
         [ @data_source = ] 'data_source'
       , [ @table_location = ] 'table_location'
[ ; ]

Argumente

[ @data_source = ] 'data_source'

Der Name der externen Datenquelle, aus der die Metadaten abgerufen werden sollen. Typ ist sysname.

[ @table_location = ] 'table_location'

Die Tabellenspeicherortzeichenfolge, die die Tabelle identifiziert. table_location type is nvarchar(max).

Resultset

Die gespeicherte Prozedur gibt die folgenden Informationen zurück:

Spaltenname Datentyp Beschreibung
name nvarchar(max) Der Name der Spalte.
type nvarchar(200) SQL Server-Typname.
length int Länge der Spalte.
precision int Genauigkeit der Spalte.
scale int Spaltenskalierung.
collation nvarchar(200) SQL Server-Sortierung der Spalte.
is_nullable bit 1 = nullable, 0 = nicht nullable.
source_type_name nvarchar(max) Back-End-spezifischer Typname. Wird hauptsächlich für das Debuggen verwendet. Für ODBC-Quellen source_type_name entspricht die TYPE_NAME Ergebnisspalte für SQLColumns().
remarks nvarchar(max) Allgemeine Kommentare oder Beschreibung der Spalte. Derzeit immer NULL.

Berechtigungen

Erfordert eine ALTER ANY EXTERNAL DATA SOURCE-Berechtigung.

Hinweise

Die SQL Server-Instanz muss das PolyBase-Feature installiert haben.

Diese gespeicherte Prozedur unterstützt Connectors für:

  • SQL Server
  • Oracle
  • Teradata
  • MongoDB
  • Azure Cosmos DB

Die gespeicherte Prozedur unterstützt keine generische ODBC-Datenquelle oder Hadoop-Connectors.

Der Begriff "leer" und "nicht leer" bezieht sich auf das Verhalten des ODBC-Treibers und der SQLTables Funktion. Nicht leer gibt an, dass ein Objekt Tabellen und keine Zeilen enthält. Beispielsweise enthält ein leeres Schema keine Tabellen in SQL Server. Eine leere Datenbank enthält keine Tabellen innerhalb von Teradata. Die Ergebnisse sind eine SQL Server-Darstellung des Back-End-Schemas, die vom PolyBase-Connector für das Back-End interpretiert wird. Der Unterschied besteht darin, dass die Ergebnisse des ODBC-Aufrufs an das Back-End nicht nur übergeben werden, sondern auf dem Ergebnis des PolyBase-Typzuordnungscodes basieren.

Verwenden und sp_data_source_table_columns ermitteln Sie sp_data_source_objects externe Objekte. Diese vom System gespeicherten Prozeduren geben das Schema von Tabellen zurück, die zur Virtualisierung verfügbar sind. Azure Data Studio verwendet diese beiden gespeicherten Prozeduren zur Unterstützung der Datenvirtualisierung. Wird verwendet sp_data_source_table_columns , um externe Tabellenschemas zu ermitteln, die in SQL Server-Datentypen dargestellt werden.

Aufgrund von Unterschieden zwischen Sortierungen in Hadoop-Quelldaten und unterstützten Sortierungen in SQL Server 2019 sind die empfohlenen Datentyplängen für Spalten vom Datentyp varchar in externen Tabellen möglicherweise viel größer als erwartet. Dies ist beabsichtigt.

Oracle-Synonyme werden für die Verwendung mit PolyBase nicht unterstützt.

Beispiele

Im folgenden Beispiel werden die Tabellenspalten für eine externe Tabelle in einem SQL Server-Namen serverzurückgegeben, der zu einem Schema namens schemagehört.

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