【问题标题】:Can I Alter SQL Azure ServiceObjective (Pricing Tier) Using SQL我可以使用 SQL 更改 SQL Azure ServiceObjective(定价层)吗
【发布时间】:2017-09-16 01:33:32
【问题描述】:

所以我使用 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 创建数据库后设置此属性

【问题讨论】:

    标签: sql azure azure-sql-database


    【解决方案1】:

    我能否使用 SQL 更改 SQL Azure ServiceObjective(定价层)

    这似乎是可能的(我还没有测试过),文档也说明了这一点: 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>) }   
                     }   
       }  
    
     [;]
    

    【讨论】:

    • 我也成功地测试了这个。有趣的是,截至 2018 年 8 月 27 日,链接页面中缺少该文档。
    【解决方案2】:

    您可以运行 ALTER DATABASE 语句,并且需要至少指定版本和服务目标,如下所示:

    ALTER DATABASE [DBName] MODIFY(EDITION='Standard', SERVICE_OBJECTIVE='S2')
    

    希望这会有所帮助。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2020-05-16
      • 1970-01-01
      • 2021-06-03
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多