【发布时间】:2018-08-24 19:59:45
【问题描述】:
当缺少完整备份时,以下代码会引发错误。
BACKUP LOG [TESTDB] TO DISK = 'C:\DBADMIN\Backup\TESTDB_LOG.BAK'
消息 4214,第 16 级,状态 1,第 4 行
无法执行 BACKUP LOG,因为当前没有数据库备份。消息 3013,第 16 级,状态 1,第 4 行
BACKUP LOG 异常终止。
我正在尝试使用以下代码捕获语句的错误编号,但无法捕获错误 4214。
BEGIN TRY
BACKUP LOG [TESTDB] TO DISK = 'C:\DBADMIN\Backup\TESTDB_LOG.BAK'
END TRY
BEGIN CATCH
SELECT ERROR_NUMBER() AS 'ERROR_NUMBER';
END CATCH
输出:
ERROR_NUMBER 3013
请有人帮我捕获错误号 4214
【问题讨论】:
-
嗨,欢迎来到 StackOverflow。在我看来,好像 2 个错误消息是按顺序出现的,第一个实际上纯粹是一个诊断,所以当你拿起 error_number() 时,你总是会得到 3013。你不能只监视那个?
标签: tsql error-handling sql-server-2012 database-administration database-backups