Delen via


Externe Azure SQL-tabellen maken en wijzigen

Van toepassing op: ✅Microsoft FabricAzure Data Explorer-

Hiermee maakt of wijzigt u een externe Azure SQL-tabel in de database waarin de opdracht wordt uitgevoerd.

Opmerking

  • Als de tabel bestaat, mislukt de opdracht .create met een fout. Gebruik .create-or-alter of .alter om bestaande tabellen te wijzigen.
  • Het wijzigen van het schema van een externe Azure SQL-tabel wordt niet ondersteund.

Ondersteunde externe Azure SQL-tabeltypen

  1. SQL Server
  2. MySQL
  3. PostgreSQL
  4. Kosmos DB

Machtigingen

Als u ten minste machtigingen voor databasegebruikers wilt .create vereisen en .alter ten minste machtigingen voor tabelbeheerders nodig hebt.

Voor .create, .alterof .create-or-alter een externe tabel met behulp van verificatie van beheerde identiteiten zijn databasebeheerdersmachtigingen vereist. Deze methode wordt ondersteund voor externe SQL Server- en Cosmos DB-tabellen.

Syntaxis

(.create.create-or-alter.alter | | ) externaltableTableName(Schema)=kindsql [ table=SqlTableName ] (SqlConnectionString) [with( [ sqlDialect=SqlDialect ] , [ Eigenschap, ... ])]

Meer informatie over syntaxisconventies.

Parameterwaarden

Naam Typologie Verplicht Beschrijving
TableName- string ✔️ De naam van de externe tabel. De naam moet voldoen aan de regels voor entiteitsnamen en een externe tabel mag niet dezelfde naam hebben als een gewone tabel in dezelfde database.
Schema string ✔️ Het externe gegevensschema is een door komma's gescheiden lijst met een of meer kolomnamen en gegevenstypen, waarbij elk item de indeling volgt: ColumnName:ColumnType.
SqlConnectionString- string ✔️ De verbindingsreeks met de SQL-server.
SqlTableName- string De naam van de SQL-tabel bevat niet de databasenaam. Als de naam van de tabel een punt ("."), gebruikt u de notatie ['Name.of.the.table'] . Als de tabel zich niet in het standaardschema van de SQL-database bevindt, gebruikt u de notatie [SchemaName.TableName']. Bijvoorbeeld voor een tabel T1 in schema 'S1': ['S1. T1']

Deze specificatie is vereist voor alle typen tabellen, met uitzondering van Cosmos DB, omdat de naam van de verzameling deel uitmaakt van de verbindingsreeks.
SqlDialect string Geeft het type externe Azure SQL-tabel aan. SQL Server is de standaardinstelling. Geef MySQLvoor MySQL op. Geef voor PostgreSQL op PostgreSQL. Geef CosmosDbSqlvoor Cosmos DB op.
Eigenschappen string Een sleutel-waarde-eigenschapspaar in de notatie PropertyName=PropertyValue. Zie optionele eigenschappen.

Waarschuwing

Verbindingsreeksen en query's die vertrouwelijke informatie bevatten, moeten worden verborgen, zodat ze worden weggelaten uit kusto-tracering. Zie verborgen letterlijke tekenreeksen voor meer informatie.

Optionele eigenschappen

Vastgoed Typologie Beschrijving
folder string De map van de tabel.
docString string Een tekenreeks die de tabel documenteert.
firetriggers true/false Als true, geeft u het doelsysteem opdracht om INSERT-triggers te activeren die zijn gedefinieerd in de SQL-tabel. De standaardwaarde is false. (Zie BULK INSERT en System.Data.SqlClient.SqlBulkCopy) voor meer informatie.
createifnotexists true/ false Als true, wordt de doel-SQL-tabel gemaakt als deze nog niet bestaat; de eigenschap primarykey moet in dit geval worden opgegeven om de resultaatkolom aan te geven die de primaire sleutel is. De standaardwaarde is false.
primarykey string Als createifnotexists dat het is true, wordt de resulterende kolomnaam gebruikt als de primaire sleutel van de SQL-tabel als deze door deze opdracht wordt gemaakt.

Authenticatie en autorisatie

Als u wilt communiceren met een externe Azure SQL-tabel, moet u verificatiemiddelen opgeven als onderdeel van sqlConnectionString. SqlConnectionString definieert de resource voor toegang tot en de verificatiegegevens.

Zie verificatiemethoden voor externe azure SQL-tabellen voor meer informatie.

Opmerking

Als de externe tabel wordt gebruikt voor continue export, moet verificatie worden uitgevoerd door gebruikersnaam/wachtwoord of beheerde identiteiten.

Voorbeelden

In de volgende voorbeelden ziet u hoe u elk type externe Azure SQL-tabel maakt.

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
)  

Uitvoer

Tabelnaam Tabeltype Map DocString Eigenschappen
MySqlExternalTable SQL ExternalTables Documentatie {
"TargetEntityKind": "sqltable",
"TargetEntityName": "MySqlTable",
"TargetEntityConnectionString": "Server=tcp:myserver.database.windows.net,1433; Verificatie=Geïntegreerde Active Directory; Initial Catalog=mydatabase;",
"FireTriggers": waar,
"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", 
)  

Kosmos 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", 
)