Notitie
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen u aan te melden of de directory te wijzigen.
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen de mappen te wijzigen.
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;
Verwante inhoud
- Gegevensvirtualisatie met PolyBase in SQL Server
- systeemopslagprocedures (Transact-SQL)
- CREATE EXTERNAL TABLE AS SELECT (CETAS) (Transact-SQL) (Dit is een SQL-opdracht voor het maken van externe tabellen)
- CREËER EXTERNE TABEL (Transact-SQL)