Podczas wydawania polecenia tworzenia kopii zapasowej w ramach procedury składowanej, która korzysta z try catch i dynamicznego SQL, komunikaty o błędach są bardzo ogólne w porównaniu z bezpośrednim uruchomieniem polecenia tworzenia kopii zapasowej.
Spróbuj / Złap w SP:
begin try
execute sp_executesql @sql; -- a backup command
end try
begin catch
print ERROR_MESSAGE(); -- save to log, etc.
end catch
Prowadzi do
50000: usp_Backup: 117: BACKUP DATABASE kończy się nieprawidłowo.
obszary wydające surowe polecenie:
backup DATABASE someDb to disk...
Wyniki w lepszych szczegółach:
Błąd wyszukiwania - błąd bazy danych SQL Server: Wystąpił nieodwracalny błąd we / wy w pliku „H: \ FolderName \ Filename.bak:” 112 (na dysku jest za mało miejsca).
Czy istnieje sposób na przechwycenie tych szczegółów w zmiennych w ramach procedury składowanej (w celu zalogowania, przekazania z powrotem do osoby dzwoniącej, w celu ponownej logiki)? Wygląda na to, że szczegóły przechodzą na kanale wiadomości, ale chciałbym, żeby były dostępne w SP.