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;