sp_data_source_table_columns (Transact-SQL)

S’applique à : SQL Server 2019 (15.x)

Retourne la liste des colonnes dans la table de source de données externe.

Remarque

Cette procédure est introduite dans SQL 2019 CU5.

Conventions de la syntaxe Transact-SQL

Syntaxe

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

Arguments

[ @data_source = ] 'data_source'

Nom de la source de données externe à partir duquel obtenir les métadonnées. Type : sysname.

[ @table_location = ] 'table_location'

Chaîne d’emplacement de la table qui identifie la table. table_location type est nvarchar(max).

Jeu de résultats

La procédure stockée retourne les informations suivantes :

Nom de la colonne Type de données Description
name nvarchar(max) Nom de la colonne.
type nvarchar(200) Nom du type SQL Server.
length int Longueur de la colonne.
precision int Précision de la colonne.
scale int Échelle de colonne.
collation nvarchar(200) Classement SQL Server de colonne.
is_nullable bit 1 = nullable, 0 = non nullable.
source_type_name nvarchar(max) Nom de type spécifique au back-end. Principalement utilisé pour le débogage. Pour les sources ODBC, source_type_name correspond à la colonne de TYPE_NAME résultat pour SQLColumns().
remarks nvarchar(max) Commentaires généraux ou description de la colonne. Actuellement toujours NULL.

Autorisations

Exige l’autorisation ALTER ANY EXTERNAL DATA SOURCE.

Notes

L’instance SQL Server doit avoir installé la fonctionnalité PolyBase .

Cette procédure stockée prend en charge les connecteurs pour :

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

La procédure stockée ne prend pas en charge la source de données ODBC générique ou les connecteurs Hadoop.

La notion de vide ou non vide concerne le comportement du pilote ODBC et de la SQLTables fonction. Non vide indique qu’un objet contient des tables, et non des lignes. Par exemple, un schéma vide ne contient aucune table dans SQL Server. Une base de données vide ne contient aucune table dans Teradata. Les résultats sont une représentation SQL Server du schéma principal tel qu’interprété par le connecteur PolyBase pour le back-end. La distinction ici est que au lieu de simplement transmettre les résultats de l’appel ODBC au back-end, les résultats sont basés sur le résultat du code de mappage de type PolyBase.

Utilisez sp_data_source_objects et sp_data_source_table_columns découvrez des objets externes. Ces procédures stockées système retournent le schéma des tables disponibles pour être virtualisées. Azure Data Studio utilise ces deux procédures stockées pour prendre en charge la virtualisation des données. Permet sp_data_source_table_columns de découvrir les schémas de table externes représentés dans les types de données SQL Server.

En raison des différences entre les classements dans les données sources Hadoop et les classements pris en charge dans SQL Server 2019, les longueurs de type de données recommandées pour les colonnes de type de données varchar dans des tables externes peuvent être beaucoup plus grandes que prévu. C'est la procédure normale.

Les synonymes Oracle ne sont pas pris en charge pour l’utilisation avec PolyBase.

Exemples

L’exemple suivant retourne les colonnes de table d’une table externe dans un serveur SQL Server nommé server, appartenant à un schéma nommé 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