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 server
zurückgegeben, der zu einem Schema namens schema
gehö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
Zugehöriger Inhalt
Feedback
https://aka.ms/ContentUserFeedback.
Bald verfügbar: Im Laufe des Jahres 2024 werden wir GitHub-Issues stufenweise als Feedbackmechanismus für Inhalte abbauen und durch ein neues Feedbacksystem ersetzen. Weitere Informationen finden Sie unterFeedback senden und anzeigen für