[英]How to programmatically create an Azure SQL Database in an Elastic Pool?
我想用C#編寫代碼,該代碼將以編程方式創建Azure SQL數據庫並將其添加到現有的彈性池中。 我已經研究了Elastic Database Client Library,但是它不處理數據庫的創建,僅將現有數據庫注冊為分片,我肯定會使用它。
是否可以通過使用諸如SqlClient之類的簡單方法來創建數據庫,或者可以通過使用Azure SQL Management SDK或某些其他選項來完成此操作?
您可以使用Transact SQL在一個語句中創建數據庫並將其添加到彈性池中。 在此示例中,我們在名為S3M100的池中創建一個新數據庫:
CREATE DATABASE db1 ( SERVICE_OBJECTIVE = ELASTIC_POOL ( name = S3M100 ) )
您也可以使用Transact-SQL首先創建數據庫。
CREATE DATABASE YourNewDB ( EDITION = 'GeneralPurpose' );
它可以是另一個數據庫的副本。
CREATE DATABASE YourNewDB AS COPY OF OldDB;
之后,您可以將其移動到任何彈性池。
ALTER DATABASE YourNewDB
MODIFY ( SERVICE_OBJECTIVE = ELASTIC_POOL ( name = pool1 ) ) ;
請參閱本教程: 使用C#創建一個新的彈性數據庫池 。
它為您提供了c#代碼示例來在池中創建新數據庫 :
// Create a database: configure create or update parameters and properties explicitly
DatabaseCreateOrUpdateParameters newPooledDatabaseParameters = new DatabaseCreateOrUpdateParameters()
{
Location = currentServer.Location,
Properties = new DatabaseCreateOrUpdateProperties()
{
Edition = "Standard",
RequestedServiceObjectiveName = "ElasticPool",
ElasticPoolName = "ElasticPool1",
MaxSizeBytes = 268435456000, // 250 GB,
Collation = "SQL_Latin1_General_CP1_CI_AS"
}
};
var poolDbResponse = sqlClient.Databases.CreateOrUpdate("resourcegroup-name", "server-name", "Database2", newPooledDatabaseParameters);
如果您已經擁有Azure SQL數據庫,則可以引用Monitor並使用C#管理彈性數據庫池 。
例如, 將數據庫移動到彈性池中 :
// Retrieve current database properties.
currentDatabase = sqlClient.Databases.Get("resourcegroup-name", "server-name", "Database1").Database;
// Configure create or update parameters with existing property values, override those to be changed.
DatabaseCreateOrUpdateParameters updatePooledDbParameters = new DatabaseCreateOrUpdateParameters()
{
Location = currentDatabase.Location,
Properties = new DatabaseCreateOrUpdateProperties()
{
Edition = "Standard",
RequestedServiceObjectiveName = "ElasticPool",
ElasticPoolName = "ElasticPool1",
MaxSizeBytes = currentDatabase.Properties.MaxSizeBytes,
Collation = currentDatabase.Properties.Collation,
}
};
// Update the database.
var dbUpdateResponse = sqlClient.Databases.CreateOrUpdate("resourcegroup-name", "server-name", "Database1", updatePooledDbParameters);
希望這可以幫助。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.