Condividi tramite


sp_data_source_table_columns (Transact-SQL)

Si applica a: SQL Server 2019 (15.x)

Restituisce un elenco di colonne nella tabella dell'origine dati esterna.

Nota

Questa procedura è stata introdotta in SQL 2019 CU5.

Convenzioni relative alla sintassi Transact-SQL

Sintassi

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

Argomenti

[ @data_source = ] 'data_source'

Nome dell'origine dati esterna da cui ottenere i metadati. Il tipo è sysname.

[ @table_location = ] 'table_location'

Stringa di posizione della tabella che identifica la tabella. Il tipo table_location è nvarchar(max).

Set di risultati

La stored procedure restituisce le informazioni seguenti:

Nome colonna Tipo di dati Descrizione
name nvarchar(max) Nome della colonna.
type nvarchar(200) nome di SQL Server.
length int Lunghezza della colonna.
precision int Precisione della colonna.
scale int Dimensione della colonna.
collation nvarchar(200) Regole di confronto delle colonne di SQL Server.
is_nullable bit 1 = ammette i valori Null, 0 = non ammette i valori Null.
source_type_name nvarchar(max) Nome del tipo specifico del back-end. Usato principalmente per il debug. Per le origini ODBC, source_type_name corrisponde alla colonna dei risultati TYPE_NAME per SQLColumns().
remarks nvarchar(max) Commenti generali o descrizione della colonna. Attualmente, sempre NULL.

Autorizzazioni

È richiesta l'autorizzazione ALTER ANY EXTERNAL DATA SOURCE.

Osservazioni:

L'istanza di SQL Server deve avere la funzionalità PolyBase installata.

Questa stored procedure supporta i connettori per:

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

La stored procedure non supporta connettori di origine dati ODBC o hadoop.

Il concetto di vuoto e non vuoto è correlato al comportamento del driver ODBC e della funzione SQLTables. Non vuoto indica che un oggetto contiene tabelle, non righe. Ad esempio, uno schema vuoto non contiene tabelle in SQL Server. Un database vuoto non contiene tabelle all'interno di Teradata. I risultati sono una dichiarazione di SQL Server dello schema back-end come interpretato dal connettore PolyBase per il back-end. La distinzione è che invece di passare semplicemente i risultati della chiamata ODBC al back-end, i risultati sono basati sul risultato del codice di mapping dei tipi PolyBase.

Usare sp_data_source_objects e sp_data_source_table_columns per individuare oggetti esterni. Queste stored procedure di sistema restituiscono lo schema delle tabelle disponibili per la virtualizzazione. Azure Data Studio usa queste due stored procedure per supportare la virtualizzazione dei dati. Usare sp_data_source_table_columns per individuare gli schemi di tabella esterni rappresentati nei tipi di dati di SQL Server.

A causa delle differenze tra le regole di confronto nei dati di origine Hadoop e le regole di confronto supportate in SQL Server 2019 (15.x), le lunghezze consigliate dei tipi di dati per le colonne del tipo di dati varchar nelle tabelle esterne possono essere molto più grandi del previsto. Questo si verifica per motivi strutturali.

I sinonimi di Oracle non possono essere usati con PolyBase.

Esempi

Nell'esempio seguente vengono restituite le colonne della tabella per una tabella esterna in un'istanza di SQL Server denominata server, appartenente a uno schema denominato schema.

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;