使用try / catch进行动态SQL备份命令时如何记录错误详细信息
在使用try catch和动态sql的存储过程中发出备份命令时,与直接运行备份命令相比,错误消息非常普遍。 在SP中尝试/捕获: begin try execute sp_executesql @sql; -- a backup command end try begin catch print ERROR_MESSAGE(); -- save to log, etc. end catch 结果是 50000:usp_Backup:117:BACKUP DATABASE异常终止。 wheareas发出raw命令: backup DATABASE someDb to disk... 结果更好的细节: 查找错误-SQL Server数据库错误:文件“ H:\ FolderName \ Filename.bak:” 112上发生了不可恢复的I / O错误(磁盘上没有足够的空间。)。 有没有办法将这些详细信息捕获到存储过程中的变量中(进行记录,传递回调用方以进行重试逻辑)?似乎详细信息正在通过消息通道传递,但我希望它们在SP中可用。