Créer et modifier des tables externes Azure SQL
S’applique à : ✅Microsoft Fabric✅Azure Data Explorer
Crée ou modifie une table externe Azure SQL dans la base de données dans laquelle la commande est exécutée.
Remarque
- Si la table existe, la
.create
commande échoue avec une erreur. Utilisez ou.alter
modifiez.create-or-alter
des tables existantes. - La modification du schéma d’une table Azure SQL externe n’est pas prise en charge.
Types de tables externes Azure SQL pris en charge
- SQL Server
- MySQL
- PostgreSQL
- Cosmos DB
autorisations
Pour .create
exiger au moins des autorisations utilisateur de base de données et .alter
exiger au moins des autorisations d’administrateur de table.
Pour .create
, .alter
ou .create-or-alter
une table externe à l’aide de l’authentification d’identité managée nécessite des autorisations d’administrateur de base de données. Cette méthode est prise en charge pour les tables externes SQL Server et Cosmos DB.
Syntaxe
(.create
| .create-or-alter
.alter
| ) external
table
Schémasql
kind
)
=
TableName (
[ table
=
SqlTableName ] (
SqlConnectionString)
[with
(
[ SqlDialect ] ,
[ sqlDialect
=
Property ,
... ]])
En savoir plus sur les conventions de syntaxe.
Paramètres
Nom | Type | Requise | Description |
---|---|---|---|
TableName | string |
✔️ | Nom de la table externe. Le nom doit suivre les règles relatives aux noms d’entités, et une table externe ne peut pas avoir le même nom qu’une table régulière dans la même base de données. |
Schéma | string |
✔️ | Le schéma de données externes est une liste séparée par des virgules d’un ou plusieurs noms de colonnes et types de données, où chaque élément suit le format : ColumnName : ColumnType. |
SqlTableName | string |
Nom de la table SQL qui n’inclut pas le nom de la base de données. Par exemple, « MySqlTable » et non « db1 ». MySqlTable ». Si le nom de la table contient un point (« . »), utilisez la notation ['Name.of.the.table']. | |
Cette spécification est requise pour tous les types de tables, à l’exception de Cosmos DB, comme pour Cosmos DB, le nom de la collection fait partie de la chaîne de connexion. |
|||
SqlConnectionString | string |
✔️ | Chaîne de connexion au serveur SQL. |
SqlDialect | string |
Indique le type de table externe Azure SQL. SQL Server est la valeur par défaut. Pour MySQL, spécifiez MySQL . Pour PostgreSQL, spécifiez PostgreSQL . Pour Cosmos DB, spécifiez CosmosDbSql . |
|
Propriété | string |
Paire de propriétés clé-valeur au format PropertyName = PropertyValue. Voir les propriétés facultatives. |
Avertissement
Les chaînes de connexion et les requêtes qui incluent des informations confidentielles doivent être masquées afin qu’elles soient omises à partir de tout suivi Kusto. Pour plus d’informations, consultez littéraux de chaîne obfusqués.
Propriétés facultatives
Propriété | Type | Description |
---|---|---|
folder |
string |
Dossier de la table. |
docString |
string |
Chaîne qui documente la table. |
firetriggers |
true /false |
Si true , indique au système cible de déclencher des déclencheurs INSERT définis sur la table SQL. Par défaut, il s’agit de false . (Pour plus d’informations, consultez BULK INSERT et System.Data.SqlClient.SqlBulkCopy) |
createifnotexists |
true / false |
Si true , la table SQL cible est créée s’il n’existe pas déjà ; la primarykey propriété doit être fournie dans ce cas pour indiquer la colonne de résultat qui est la clé primaire. Par défaut, il s’agit de false . |
primarykey |
string |
Si createifnotexists c’est true le cas, le nom de colonne résultant est utilisé comme clé primaire de la table SQL s’il est créé par cette commande. |
Authentification et autorisation
Pour interagir avec une table Azure SQL externe, vous devez spécifier des moyens d’authentification dans le cadre de SqlConnectionString. SqlConnectionString définit la ressource pour accéder à ses informations d’authentification et ses informations d’authentification.
Pour plus d’informations, consultez les méthodes d’authentification de table externe Azure SQL.
Remarque
Si la table externe est utilisée pour l’exportation continue, l’authentification doit être effectuée par nom d’utilisateur/mot de passe ou identités managées.
Exemples
Les exemples suivants montrent comment créer chaque type de table externe Azure SQL.
SQL Server
.create external table MySqlExternalTable (x:long, s:string)
kind=sql
table=MySqlTable
(
h@'Server=tcp:myserver.database.windows.net,1433;Authentication=Active Directory Integrated;Initial Catalog=mydatabase;'
)
with
(
docstring = "Docs",
folder = "ExternalTables",
createifnotexists = true,
primarykey = x,
firetriggers=true
)
Sortie
TableName | TableType | Dossier | DocString | Propriétés |
---|---|---|---|---|
MySqlExternalTable | SQL | ExternalTables | Documentation | { « TargetEntityKind » : « sqltable' », « TargetEntityName » : « MySqlTable », « TargetEntityConnectionString » : « Server=tcp :myserver.database.windows.net,1433 ; Authentication=Active Directory Integrated ; Initial Catalog=mydatabase ;", « FireTriggers » : true, « CreateIfNotExists » : true, « PrimaryKey » : « x » } |
MySQL
.create external table MySqlExternalTable (x:long, s:string)
kind=sql
table=MySqlTable
(
h@'Server=myserver.mysql.database.windows.net;Port = 3306;UID = USERNAME;Pwd = PASSWORD;Database = mydatabase;'
)
with
(
sqlDialect = "MySql",
docstring = "Docs",
folder = "ExternalTables",
)
PostgreSQL
.create external table PostgreSqlExternalTable (x:long, s:string)
kind=sql
table=PostgreSqlTable
(
h@'Host = hostname.postgres.database.azure.com; Port = 5432; Database= db; User Id=user; Password=pass; Timeout = 30;'
)
with
(
sqlDialect = "PostgreSQL",
docstring = "Docs",
folder = "ExternalTables",
)
Cosmos DB
.create external table CosmosDBSQLExternalTable (x:long, s:string)
kind=sql
(
h@'AccountEndpoint=https://cosmosdbacc.documents.azure.com/;Database=MyDatabase;Collection=MyCollection;AccountKey=' h'R8PM...;'
)
with
(
sqlDialect = "CosmosDbSQL",
docstring = "Docs",
folder = "ExternalTables",
)