我正在研究本地SQL Server 2012实例上的数据库,并计划在本地测试/使用后将其迁移到Azure。 .NET数据访问层代码有多个catch {}块,但我还想在数据库超出其最大大小时捕获错误。什么是确切的错误引发的类型,以及捕获它的最明智的方法是什么?如果发生这种情况,我会向管理员发送电子邮件。
感谢。
答案 0 :(得分:5)
您需要检查例外情况下的号码:
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;
}
}
参考:http://blogs.msdn.com/b/sqlazure/archive/2010/08/10/10048453.aspx