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
- SQL Server
- MySQL
- PostgreSQL
- Cosmos DB
İzinler
için .create
en az Veritabanı Kullanıcısı izinleri ve .alter
en az Tablo Yönetici izinleri gerekir.
Yönetilen .create
kimlik 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
| ) external
table
TableName(
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 createifnotexists true , 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",
)
İlgili içerik
Geri Bildirim
https://aka.ms/ContentUserFeedback.
Çok yakında: 2024 boyunca, içerik için geri bildirim mekanizması olarak GitHub Sorunları’nı kullanımdan kaldıracak ve yeni bir geri bildirim sistemiyle değiştireceğiz. Daha fazla bilgi için bkz.Gönderin ve geri bildirimi görüntüleyin