簡體   English   中英

如何在彈性池中以編程方式創建Azure SQL數據庫?

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM