Aracılığıyla paylaş


Azure SQL dış tablolarını oluşturma ve değiştirme

Komutun yürütüldiği veritabanında bir Azure SQL dış tablosu oluşturur veya değiştirir.

Not

  • Tablo varsa, .create komut bir hatayla başarısız olur. Mevcut tabloları değiştirmek için veya .alter kullanın.create-or-alter.
  • Dış Azure SQL tablosunun şemasının değiştirilmesi desteklenmez.

Desteklenen Azure SQL dış tablo türleri

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

İzinler

için .create en az Veritabanı Kullanıcısı izinleri ve .alter en az Tablo Yönetici izinleri gerekir.

Yönetilen .createkimlik kimlik doğrulaması kullanan bir dış tabloya , veya .create-or-alter için Veritabanı Yönetici izinleri gerekir. .alter Bu yöntem SQL Server ve Cosmos DB dış tabloları için desteklenir.

Sözdizimi

(.create | .alter.create-or-alter | ) externaltableTableName(Schemasql=)kind [ table=SqlTableName ] (Sql Bağlan ionString) [(with [ sqlDialect=SqlDialect ] , [ Özellik, ... ]])

Söz dizimi kuralları hakkında daha fazla bilgi edinin.

Parametreler

Ad Tür Zorunlu Açıklama
TableName string ✔️ Dış tablonun adı. Adın varlık adları için kurallara uyması gerekir ve dış tablo aynı veritabanındaki normal tabloyla aynı ada sahip olamaz.
Şema string ✔️ Dış veri şeması, bir veya daha fazla sütun adının ve veri türünün virgülle ayrılmış bir listesidir ve her öğe şu biçime uyar: ColumnName:ColumnType.
SqlTableName string Veritabanı adı dahil olmayan SQL tablosunun adı. Örneğin, "db1" yerine "MySqlTable". MySqlTable". Tablonun adı nokta (".") içeriyorsa['Name.of.the.table'] gösterimini kullanın.


Cosmos DB dışındaki tüm tablo türleri için bu belirtim gereklidir. Cosmos DB'de olduğu gibi koleksiyon adı bağlantı dizesi bir parçasıdır.
Sql Bağlan ionString string ✔️ SQL sunucusuna bağlantı dizesi.
SqlDialect string Azure SQL dış tablosunun türünü gösterir. SQL Server varsayılandır. MySQL için belirtin MySQL. PostgreSQL için belirtin PostgreSQL. Cosmos DB için belirtin CosmosDbSql.
Özellik string PropertyName=PropertyValue biçiminde bir anahtar-değer özellik çifti. bkz. isteğe bağlı özellikler.

Uyarı

Gizli bilgileri içeren Bağlan ion dizeleri ve sorguları, Kusto izlemesinden atlanacak şekilde gizlenmelidir. Daha fazla bilgi için bkz . belirsiz dize değişmez değerleri.

İsteğe bağlı özellikler

Özellik Türü Açıklama
folder string Tablonun klasörü.
docString string Tabloyu belgeleme dizesi.
firetriggers true/false ise true, hedef sisteme SQL tablosunda tanımlanan INSERT tetikleyicilerini tetikleme talimatını verirseniz. Varsayılan değer: false. (Daha fazla bilgi için bkz. BULK INSERT ve System.Data.SqlClient.SqlBulkCopy)
createifnotexists true/ false ise true, hedef SQL tablosu henüz mevcut değilse oluşturulur; primarykey birincil anahtar olan sonuç sütununu belirtmek için bu durumda özelliği sağlanmalıdır. Varsayılan değer: false.
primarykey string ise createifnotexiststrue, sonuçta elde edilen sütun adı, bu komut tarafından oluşturulduysa SQL tablosunun birincil anahtarı olarak kullanılır.

Kimlik doğrulaması ve yetkilendirme

Azure Veri Gezgini'dan bir dış Azure SQL tablosuyla etkileşime geçmek için Sql Bağlan ionString'in bir parçası olarak kimlik doğrulama araçlarını belirtmeniz gerekir. Sql Bağlan ionString, erişilmesi gereken kaynağı ve kimlik doğrulama bilgilerini tanımlar.

Daha fazla bilgi için bkz . Azure SQL dış tablo kimlik doğrulama yöntemleri.

Not

Dış tablo sürekli dışarı aktarma için kullanılıyorsa, kimlik doğrulaması kullanıcı adı/parola veya yönetilen kimliklerle gerçekleştirilmelidir.

Örnekler

Aşağıdaki örneklerde her bir Azure SQL dış tablosunun nasıl oluşturulacağı gösterilmektedir.

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
)  

Çıktı

TableName TableType Klasör DocString Properties
MySqlExternalTable Sql ExternalTable'lar Belgeler {
"TargetEntityKind": "sqltable'",
"TargetEntityName": "MySqlTable",
"TargetEntity Bağlan ionString": "Server=tcp:myserver.database.windows.net,1433; Authentication=Active Directory Tümleşik; İlk Katalog=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", 
)