3

我正在本地 SQL Server 2012 实例上开发数据库,​​并计划在本地测试/使用后将其迁移到 Azure。.NET 数据访问层代码有多个 catch{} 块,但我也想在数据库超过其最大大小时捕获错误。引发的确切错误类型是什么,捕捉它的最聪明方法是什么?如果发生这种情况,我会想向管理员发送电子邮件。

谢谢。

4

1 回答 1

5

You'll need to check the number on the exception:

try
{
    // ...
}
catch (SqlException sqlException)
{
    switch (sqlException.Number)
    {
        // The database has reached its size quota. Partition or delete data,
        // drop indexes, or consult the documentation for possible resolutions. 
        case 40544:
            break;
    }
}

Reference: http://blogs.msdn.com/b/sqlazure/archive/2010/08/10/10048453.aspx

于 2012-05-30T12:11:59.880 回答