检查一个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,您可以在其中比较currentServiceLevelObjectiveId
和requestedServiceObjectiveId
属性,以确保您的命令已成功。
注意:不要忘记在Azure中传递API调用所需的所有常用参数。