当我运行
之类的东西时BACKUP LOG [somedb]
TO DISK = N'i:\log.bak';
它会抛出2条错误消息:
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.
当我尝试使用TRY CATCH处理错误时,返回的错误始终为3013.这对我来说是个问题,因为我想知道备份是否由于空间不足或驱动器不存在而失败等等。
使用@@ ERROR返回相同的错误编号。
有没有办法处理像这样的多个错误消息?
答案 0 :(得分:4)
您需要检查Errors
中的SqlException
集合:
catch(SqlException sqlEx)
{
foreach(SqlError error in sqlEx.Errors)
{
int code = error.Number;
string msg = error.Message;
}
}
您应该收到SqlException.Errors