3

ローカルでテスト/使用された後、Azure に移行する計画で、ローカル SQL Server 2012 インスタンス上のデータベースに取り組んでいます。.NET データ アクセス レイヤー コードには複数の catch{} ブロックがありますが、データベースが最大サイズを超えたときにエラーをキャッチしたいと考えています。発生した正確なエラーの種類は何ですか?また、それをキャッチする最もスマートな方法は何ですか? これが発生した場合は、管理者にメールを送信したいと思います。

ありがとう。

4

1 に答える 1

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

于 2012-05-30T12:11:59.880 に答える