Creación y modificación de tablas externas de Azure SQL
Se aplica a: ✅Microsoft Fabric✅Azure Data Explorer
Crea o modifica una tabla externa de Azure SQL en la base de datos en la que se ejecuta el comando.
Nota:
- Si la tabla existe, se producirá un error en el
.create
comando. Use.create-or-alter
o.alter
para modificar las tablas existentes. - No se admite la modificación del esquema de una tabla externa de Azure SQL.
Tipos de tabla externa de Azure SQL admitidos
- SQL Server
- MySQL
- PostgreSQL
- Cosmos DB
Permisos
Para .create
requerir al menos permisos de usuario de base de datos y para .alter
requerir al menos permisos de administrador de tablas.
Para .create
, .alter
o .create-or-alter
una tabla externa mediante la autenticación de identidad administrada requiere permisos de administrador de base de datos. Este método es compatible con las tablas externas de SQL Server y Cosmos DB.
Sintaxis
(.create
| .create-or-alter
.alter
| ) external
table
Esquemasql
kind
)
=
TableName (
[ table
=
SqlTableName ] (
SqlConnectionString)
[with
(
[ sqlDialect
=
SqlDialect ] ,
[ Propiedad ,
... ]])
Obtenga más información sobre las convenciones de sintaxis.
Parámetros
Nombre | Type | Obligatorio | Descripción |
---|---|---|---|
TableName | string |
✔️ | Nombre de la tabla externa. El nombre debe seguir las reglas para los nombres de entidad y una tabla externa no puede tener el mismo nombre que una tabla normal en la misma base de datos. |
Esquema | string |
✔️ | El esquema de datos externos es una lista separada por comas de uno o más nombres de columna y tipos de datos, donde cada elemento sigue el formato: ColumnName : ColumnType. |
SqlTableName | string |
Nombre de la tabla SQL que no incluye el nombre de la base de datos. Por ejemplo, "MySqlTable" y no "db1". MySqlTable". Si el nombre de la tabla contiene un punto ("."), use la notación ['Name.of.the.table']. | |
Esta especificación es necesaria para todos los tipos de tablas, excepto para Cosmos DB, ya que para Cosmos DB el nombre de la colección forma parte del cadena de conexión. |
|||
SqlConnectionString | string |
✔️ | El cadena de conexión al servidor SQL Server. |
SqlDialect | string |
Indica el tipo de tabla externa de Azure SQL. SQL Server es el valor predeterminado. En MySQL, especifique MySQL . En PostgreSQL, especifique PostgreSQL . En Cosmos DB, especifique CosmosDbSql . |
|
Propiedad | string |
Par de propiedades clave-valor con el formato PropertyName = PropertyValue. Consulte las propiedades opcionales. |
Advertencia
Las cadenas de conexión y las consultas que incluyen información confidencial deben ofuscarse para que se omitan de cualquier seguimiento de Kusto. Para obtener más información, consulte literales de cadena ofuscados.
Propiedades opcionales
Propiedad | Tipo | Descripción |
---|---|---|
folder |
string |
Carpeta de la tabla. |
docString |
string |
Cadena que documenta la tabla. |
firetriggers |
true /false |
Si true es , indica al sistema de destino que active los desencadenadores INSERT definidos en la tabla SQL. El valor predeterminado es false . (Para obtener más información, consulte BULK INSERT y System.Data.SqlClient.SqlBulkCopy) |
createifnotexists |
true / false |
Si true es , la tabla SQL de destino se crea si aún no existe; la primarykey propiedad debe proporcionarse en este caso para indicar la columna de resultado que es la clave principal. El valor predeterminado es false . |
primarykey |
string |
Si createifnotexists es true , el nombre de columna resultante se usa como clave principal de la tabla SQL si este comando lo crea. |
Autenticación y autorización
Para interactuar con una tabla externa de Azure SQL, debe especificar los medios de autenticación como parte de SqlConnectionString. SqlConnectionString define el recurso para acceder a y su información de autenticación.
Para más información, consulte Métodos de autenticación de tablas externas de Azure SQL.
Nota:
Si la tabla externa se usa para la exportación continua, la autenticación debe realizarse mediante el nombre de usuario o la contraseña o las identidades administradas.
Ejemplos
En los ejemplos siguientes se muestra cómo crear cada tipo de tabla externa de 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
)
Salida
TableName | TableType | Carpeta | DocString | Propiedades |
---|---|---|---|---|
MySqlExternalTable | Sql | ExternalTables | Docs | { "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",
)