开发者

How to handle multiple errors

开发者 https://www.devze.com 2023-03-04 23:18 出处:网络
When I run something like BACKUP LOG [somedb] TO DISK = N\'i:\\log.bak\'; It throws 2 errors messages:

When I run something like

BACKUP LOG [somedb] 
TO DISK = N'i:\log.bak';

It throws 2 errors messages:

Msg 3201, Level 16, State 1, Line 2
Cannot open backup device 'i:\log.bak'. Operating system error 3(The system cannot find    the path specified.).
Msg 3013, Level 16, State 1, Line 2
BACKUP LOG is terminating abnormally.

When I try to handle the error with a TRY CATCH the error returned is always 3013. This is a problem for me because I want to know if the backup failed due to l开发者_如何学Pythonack of space, or if the drive isn't present, etc.

Using @@ERROR returns the same error number.

Is there any way to handle multiple error messages like these?


You need to inspect the Errors collection inside the SqlException:

catch(SqlException sqlEx)
{
    foreach(SqlError error in sqlEx.Errors)
    {
       int code = error.Number;
       string msg = error.Message;
    }
 }

You should get all error with all relevant details in the SqlException.Errors

0

精彩评论

暂无评论...
验证码 换一张
取 消