如何以编程方式在弹性池中创建 Azure SQL 数据库?
How to programmatically create an Azure SQL Database in an Elastic Pool?
我想用 C# 编写代码,以编程方式创建 Azure SQL 数据库并将其添加到现有的弹性池中。
我查看了 Elastic Database Client Library,但它不处理数据库的创建,仅将现有数据库注册为分片,我肯定会使用它。
是否可以使用像 SqlClient 这样简单的东西来创建数据库,或者这可以通过使用 Azure SQL 管理 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 ) ) ;
请参阅本教程:Create a new elastic database pool with C#。
它为您提供了 Create a new database in a pool:
的 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);
如果你已经有AzureSQL数据库,可以参考
Monitor and manage an elastic database pool with C#.
例如,Move a database into an elastic pool:
// 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);
希望这对您有所帮助。
我想用 C# 编写代码,以编程方式创建 Azure SQL 数据库并将其添加到现有的弹性池中。 我查看了 Elastic Database Client Library,但它不处理数据库的创建,仅将现有数据库注册为分片,我肯定会使用它。
是否可以使用像 SqlClient 这样简单的东西来创建数据库,或者这可以通过使用 Azure SQL 管理 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 ) ) ;
请参阅本教程:Create a new elastic database pool with C#。
它为您提供了 Create a new database in a pool:
的 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);
如果你已经有AzureSQL数据库,可以参考 Monitor and manage an elastic database pool with C#.
例如,Move a database into an elastic pool:
// 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);
希望这对您有所帮助。