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