所以我使用 Visual Studio 数据库项目将我的数据库发布到 Azure。

默认情况下,这会将数据库发布为 S0 定价层。然后我必须登录门户并将定价层更改为 S1

this answer 我可以看到有人在创建数据库时设置了 ServiceObjective 属性,如下所示:

CREATE DATABASE
[{databaseName}]
(MAXSIZE={maxSize}, EDITION='{edition}',SERVICE_OBJECTIVE='{serviceObjective}'

在门户中更改定价层后,我运行以下命令:
SELECT DATABASEPROPERTYEX('MyDatabaseName', 'ServiceObjective')

它返回 S1 所以我确定 ServiceObjective 是正确的属性

但我的问题是我可以在使用 Alter 创建数据库后设置此属性吗

最佳答案



似乎这是可能的(我还没有测试过),文档也说明了这一点:
Changing the edition, size and service objective for an existing database

ALTER DATABASE [db1]
MODIFY
 (EDITION = 'Premium', MAXSIZE = 1024 GB, SERVICE_OBJECTIVE = 'P15');

以下是 SQLAZURE alter 的总语法
-- Azure SQL Database Syntax
ALTER DATABASE { database_name }
{
    MODIFY NAME =new_database_name
  | MODIFY ( <edition_options> [, ... n] )
  | SET { <option_spec> [ ,... n ] }
  | ADD SECONDARY ON SERVER <partner_server_name>
      [WITH (\<add-secondary-option>::= [, ... n] ) ]
  | REMOVE SECONDARY ON SERVER <partner_server_name>
  | FAILOVER
  | FORCE_FAILOVER_ALLOW_DATA_LOSS
}

<edition_options> ::=
{

      MAXSIZE = { 100 MB | 250 MB | 500 MB | 1 … 1024 … 4096 GB }
    | EDITION = { 'basic' | 'standard' | 'premium' | 'premiumrs' }
    | SERVICE_OBJECTIVE =
                 {  'S0' | 'S1' | 'S2' | 'S3'| 'S4'| 'S6'| 'S7'| 'S9'| 'S12' |
                 | 'P1' | 'P2' | 'P4'| 'P6' | 'P11'  | 'P15' |
                 | 'PRS1' | 'PRS2' | 'PRS4' | 'PRS6' |
                 | { ELASTIC_POOL (name = <elastic_pool_name>) }
                 }
}

<add-secondary-option> ::=
   {
      ALLOW_CONNECTIONS = { ALL | NO }
     | SERVICE_OBJECTIVE =
                 {  'S0' | 'S1' | 'S2' | 'S3' | 'S4'| 'S6'| 'S7'| 'S9'| 'S12' |
                 | 'P1' | 'P2' | 'P4'| 'P6' | 'P11' | 'P15' |
                 | 'PRS1' | 'PRS2' | 'PRS4' | 'PRS6' |
                 | { ELASTIC_POOL ( name = <elastic_pool_name>) }
                 }
   }

 [;]

关于sql - 我可以使用 SQL 更改 SQL Azure ServiceObjective(定价层)吗,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/46243527/

10-09 15:53