Note
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de vous connecter ou de modifier les répertoires.
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de changer de répertoire.
S’applique à : SQL Server 2016 (13.x) et versions
ultérieures d’Azure SQL Database Azure SQL
Managed Instance
Azure Synapse Analytics AnalyticsPlatform System (PDW)
SQL Analytics Endpoint
in Microsoft Fabric
Warehouse dans Microsoft FabricSQL Database
dans Microsoft Fabric SQL Database dans Microsoft Fabric
Modifie une source de données externe utilisée pour créer une table externe, utilisée pour les fonctionnalités de virtualisation de données et PolyBase. La source de données externe peut être un stockage Hadoop ou Stockage Blob Azure (WASBS) pour SQL SERVER et Stockage Blob Azure (WASBS) ou Azure Data Lake (ABFSS/ADL) pour Azure Synapse Analytics.
À compter de SQL Server 2022 (16.x), les sources de données externes Hadoop ne sont plus prises en charge. En outre, les préfixes du Stockage Blob Azure et d’Azure Data Lake Gen2 ont changé (cf. tableau suivant) :
| Source de données externe | Du | À |
|---|---|---|
Azure Blob Storage |
wasb[s] |
abs |
ADLS Gen2 |
abfs[s] |
adls |
Conventions de la syntaxe Transact-SQL
Syntaxe
Modifiez une source de données externe. Syntaxe pour SQL Server (2016, 2017 et 2019) et système de plateforme d’analyse (PDW).
-- Modify an external data source
-- Applies to: SQL Server (2016, 2017 and 2019) and APS
ALTER EXTERNAL DATA SOURCE data_source_name SET
{
LOCATION = '<prefix>://<path>[:<port>]' [,] |
RESOURCE_MANAGER_LOCATION = <'IP address;Port'> [,] |
CREDENTIAL = credential_name
}
[;]
Modifiez une source de données externe pointant vers le stockage Blob Azure. Syntaxe pour SQL Server (2017 et 2019).
-- Modify an external data source pointing to Azure Blob storage
-- Applies to: SQL Server (2017 and 2019)
ALTER EXTERNAL DATA SOURCE data_source_name
SET
LOCATION = 'https://storage_account_name.blob.core.windows.net'
[, CREDENTIAL = credential_name ]
Modifiez une source de données externe pointant vers le stockage Blob Azure. Syntaxe pour SQL Server 2022 et versions ultérieures.
-- Modify an external data source pointing to Azure Blob storage
-- Applies to: SQL Server 2022 and later versions
ALTER EXTERNAL DATA SOURCE data_source_name
SET
LOCATION = 'abs://storage_account_name.blob.core.windows.net'
[, CREDENTIAL = credential_name ]
Modifiez une source de données externe pointant vers Azure Data Lake Storage (ADLS) Gen2. Syntaxe pour SQL Server 2022 et versions ultérieures.
-- Modify an external data source pointing to Azure Data Lake Storage Gen2
-- Applies to: SQL Server 2022 and later versions
ALTER EXTERNAL DATA SOURCE data_source_name
SET
LOCATION = 'adls://storage_account_name.dfs.core.windows.net'
[, CREDENTIAL = credential_name ]
Modifiez une source de données externe pointant vers stockage Blob Azure ou Azure Data Lake Storage. Syntaxe du pool SQL dédié Azure Synapse Analytics uniquement.
-- Modify an external data source pointing to Azure Blob storage or Azure Data Lake storage
-- Applies to: Azure Synapse Analytics dedicated SQL pool only
ALTER EXTERNAL DATA SOURCE data_source_name
SET
[LOCATION = '<location prefix>://<location path>']
[, CREDENTIAL = credential_name ]
Les arguments
data_source_name
Spécifie le nom défini par l’utilisateur de la source de données. Le nom doit être unique.
EMPLACEMENT
Fournit le protocole de connectivité, le chemin et le port vers la source de données externe. Pour connaître les options d’emplacement valides, consultez CREATE EXTERNAL DATA SOURCE (Transact-SQL).
RESOURCE_MANAGER_LOCATION = '<Adresse IP ; Port>'
Ne s’applique pas à Azure Synapse Analytics et SQL Server 2022 (16.x))
Spécifie l’emplacement Hadoop Resource Manager. S’il est spécifié, l’optimiseur de requête peut choisir de prétraiter les données d’une requête PolyBase en utilisant les fonctionnalités de calcul d’Hadoop. C’est une décision basée sur les coûts. Appelée pushdown de prédicats, cette opération peut considérablement réduire le volume des données transférées entre Hadoop et SQL, et donc améliorer les performances des requêtes.
DIPLÔME = Credential_Name
Spécifie les informations d’identification nommées. Cf. CREATE DATABASE SCOPED CREDENTIAL (Transact-SQL).
TYPE = [ HADOOP | BLOB_STORAGE ] **
S’applique à : SQL Server 2017 (14.x) et SQL Server 2019 (15.x) uniquement.
Pour les opérations en bloc uniquement, LOCATION doit être valide dans l’URL vers le stockage Blob Azure. Ne placez pas de paramètres de signature d’accès /partagé, de nom de fichier ou d’accès partagé à la fin de l’URL LOCATION .
Les informations d’identification utilisées doivent être créées avec l’identité SHARED ACCESS SIGNATURE. Pour plus d’informations sur les signatures d’accès partagé, consultez Utilisation des signatures d’accès partagé (SAP).
Notes
Une seule une source peut être modifiée à la fois. Des demandes simultanées de modifications de la même source provoquent l’attente d’une instruction. Toutefois, différentes sources peuvent être modifiés en même temps. Cette instruction peut s’exécuter en même temps que d’autres instructions.
Dans Azure Synapse Analytics, les connexions à des sources de données externes pointant vers le Stockage Blob Azure ou Azure Data Lake Storage sont prises en charge dans le pool SQL dédié uniquement.
Autorisations
Exige l’autorisation ALTER ANY EXTERNAL DATA SOURCE.
Important
L’autorisation ALTER ANY EXTERNAL DATA SOURCE accorde à n’importe quel principal la possibilité de créer et de modifier tout objet de source de données externe. Par conséquent, elle permet également d’accéder à toutes les informations d’identification délimitées à la base de données. Cette autorisation doit être considérée comme fournissant des privilèges très élevés, et doit donc être accordée uniquement aux principaux de confiance du système.
Exemples
L’exemple suivant modifie l’emplacement d’une source de données existante ainsi que celui de son gestionnaire de ressources.
Ne s’applique pas à SQL Server 2022 (16.x).
ALTER EXTERNAL DATA SOURCE hadoop_eds SET
LOCATION = 'hdfs://10.10.10.10:8020',
RESOURCE_MANAGER_LOCATION = '10.10.10.10:8032'
;
L’exemple suivant modifie les informations d’identification permettant de se connecter à une source de données existante.
ALTER EXTERNAL DATA SOURCE hadoop_eds SET
CREDENTIAL = new_hadoop_user
;
L’exemple suivant modifie les informations d’identification vers un nouvel emplacement. Cet exemple est une source de données externe créée pour Azure Synapse Analytics.
ALTER EXTERNAL DATA SOURCE AzureStorage_west SET
LOCATION = 'wasbs://loadingdemodataset@updatedproductioncontainer.blob.core.windows.net',
CREDENTIAL = AzureStorageCredential