Delen via


sp_data_source_table_columns (Transact-SQL)

Van toepassing op: SQL Server 2019 (15.x)

Retourneert een lijst met kolommen in een externe gegevensbrontabel.

Opmerking

Deze procedure wordt geïntroduceerd in SQL 2019 CU5.

Transact-SQL syntaxis-conventies

Syntaxis

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

Arguments

[ @data_source = ] 'data_source'

De naam van de externe gegevensbron waaruit de metagegevens moeten worden opgehaald. Type is sysname.

[ @table_location = ] 'table_location'

De tabellocatietekenreeks die de tabel identificeert. table_location type is nvarchar(max).

Resultaatset

De opgeslagen procedure retourneert de volgende informatie:

Kolomnaam Gegevenstype Description
name nvarchar(max) De naam van de kolom.
type nvarchar(200) SQL Server-typenaam.
length int Lengte van kolom.
precision int Precisie van kolom.
scale int Schaal van kolom.
collation nvarchar(200) SQL Server-sortering van kolom.
is_nullable bit 1 = nullable, 0 = not nullable.
source_type_name nvarchar(max) Naam van het type back-end. Meestal gebruikt voor foutopsporing. Voor ODBC-bronnen source_type_name komt dit overeen met de TYPE_NAME resultaatkolom voor SQLColumns().
remarks nvarchar(max) Algemene opmerkingen of beschrijving van kolom. Momenteel altijd NULL.

Permissions

Hiervoor is toestemming vereist ALTER ANY EXTERNAL DATA SOURCE .

Opmerkingen

Op het SQL Server-exemplaar moet de PolyBase-functie zijn geïnstalleerd.

Deze opgeslagen procedure ondersteunt connectors voor:

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

De opgeslagen procedure biedt geen ondersteuning voor algemene ODBC-gegevensbron of Hadoop-connectors.

Het begrip leeg versus niet-leeg heeft betrekking op het gedrag van het ODBC-stuurprogramma en de functie SQLTables . Niet-leeg geeft aan dat een object tabellen bevat, niet rijen. Een leeg schema bevat bijvoorbeeld geen tabellen in SQL Server. Een lege database bevat geen tabellen in Teradata. De resultaten zijn een SQL Server-weergave van het back-endschema, zoals geïnterpreteerd door de PolyBase-connector voor de back-end. Het verschil hier is dat in plaats van alleen de resultaten van de ODBC-aanroep naar de back-end door te geven, de resultaten zijn gebaseerd op het resultaat van de PolyBase-typetoewijzingscode.

Gebruik sp_data_source_objects en sp_data_source_table_columns om externe objecten te detecteren. Deze opgeslagen systeemprocedures retourneren het schema van tabellen die beschikbaar zijn om te worden gevirtualiseerd. Azure Data Studio maakt gebruik van deze twee opgeslagen procedures ter ondersteuning van gegevensvirtualisatie. Hiermee sp_data_source_table_columns kunt u externe tabelschema's detecteren die worden weergegeven in SQL Server-gegevenstypen.

Vanwege verschillen tussen sorteringen in Hadoop-brongegevens en ondersteunde sorteringen in SQL Server 2019 (15.x), zijn de aanbevolen lengten van het gegevenstype voor varchar-gegevenstypekolommen in externe tabellen mogelijk veel groter dan verwacht. Dit is standaard.

Oracle-synoniemen worden niet ondersteund voor gebruik met PolyBase.

Voorbeelden

In het volgende voorbeeld worden de tabelkolommen geretourneerd voor een externe tabel in een SQL Server met de naam server, die hoort bij een schema met de naam schema.

DECLARE @data_source AS SYSNAME = N'ExternalDataSourceName';
DECLARE @table_location AS NVARCHAR (400) = N'[database].[schema].[table]';

EXECUTE sp_data_source_table_columns
    @data_source,
    @table_location;