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