检查一个SQL Azure数据库是可从C#代码

问题描述:

我做一个高档与一个天青SQL数据库这样的代码:检查一个SQL Azure数据库是可从C#代码

ALTER DATABASE [MYDATABASE]修改(SERVICE_OBJECTIVE = 'S1');

当Azure完成作业并且表已经可用时,如何从c#代码中获知?

检查SERVICE_OBJECTIVE值是不够的,该过程仍然继续。

而不是在T-SQL中执行此任务,我将使用API​​调用转到REST API从C#执行任务,您可以在MSDN上找到所有的详细信息。

具体来说,你应该看看Get Create or Update Database Status API方法,它允许您拨打以下网址:

GET  https://management.azure.com/subscriptions/{subscription-id}/resourceGroups/{resource-group-name}/providers/Microsoft.Sql/servers/{server-name}/databases/{database-name}}/operationResults/{operation-id}?api-version={api-version} 

的JSON身体允许你通过以下参数:

{ 
    "id": "{uri-of-database}", 
    "name": "{database-name}", 
    "type": "{database-type}", 
    "location": "{server-location}", 
    "tags": { 
     "{tag-key}": "{tag-value}", 
     ... 
    }, 
    "properties": { 
     "databaseId": "{database-id}", 
     "edition": "{database-edition}", 
     "status": "{database-status}", 
     "serviceLevelObjective": "{performance-level}", 
     "collation": "{collation-name}", 
     "maxSizeBytes": {max-database-size}, 
     "creationDate": "{date-create}", 
     "currentServiceLevelObjectiveId":"{current-service-id}", 
     "requestedServiceObjectiveId":"{requested-service-id}", 
     "defaultSecondaryLocation": "{secondary-server-location}" 
    } 
} 

在属性部分,serviceLevelObjective属性是您可以用来调整数据库大小的属性。最后,您可以在Get Database API方法上执行GET,您可以在其中比较currentServiceLevelObjectiveIdrequestedServiceObjectiveId属性,以确保您的命令已成功。

注意:不要忘记在Azure中传递API调用所需的所有常用参数。