Al emitir un comando de respaldo dentro de un procedimiento almacenado que utiliza un try catch y sql dinámico, los mensajes de error son muy generales en comparación con la ejecución directa del comando de respaldo.
Probar / Atrapar dentro de SP:
begin try
execute sp_executesql @sql; -- a backup command
end try
begin catch
print ERROR_MESSAGE(); -- save to log, etc.
end catch
Resultados en
50000: usp_Backup: 117: BACKUP DATABASE está terminando anormalmente.
cuando emitimos el comando sin procesar:
backup DATABASE someDb to disk...
Resultados en mejores detalles:
Error de búsqueda: error de la base de datos de SQL Server: se produjo un error de E / S no recuperable en el archivo "H: \ FolderName \ Filename.bak:" 112 (No hay suficiente espacio en el disco).
¿Hay alguna manera de capturar estos detalles en variables dentro del procedimiento almacenado (para iniciar sesión, pasar de nuevo a la persona que llama, para volver a intentar la lógica)? Parece que los detalles están llegando en el canal de mensajes, pero me gustaría que estén disponibles en el SP.