Cela ne vous aidera pas pour le moment, mais peut intéresser les utilisateurs de SQL Server 2008. Sur SQL Server 2008, XEvents peut être utilisé pour enregistrer tous les détails de l'erreur (y compris le texte de l'instruction) dans un emplacement central.
IF EXISTS(SELECT * FROM sys.server_event_sessions WHERE name='ErrorLogger')
DROP EVENT SESSION [ErrorLogger] ON SERVER;
CREATE EVENT SESSION [ErrorLogger]
ON SERVER
ADD EVENT sqlserver.error_reported(
ACTION (sqlserver.sql_text)
WHERE (([severity]>(10))))
ADD TARGET package0.asynchronous_file_target(
SET filename='c:\temp\error_logger.xel', metadatafile='c:\temp\error_logger.xem')
WITH (MAX_MEMORY = 4096KB, EVENT_RETENTION_MODE = ALLOW_SINGLE_EVENT_LOSS,
MAX_DISPATCH_LATENCY = 30 SECONDS, MAX_EVENT_SIZE = 0KB,
MEMORY_PARTITION_MODE = NONE, TRACK_CAUSALITY = OFF, STARTUP_STATE = ON)
ALTER EVENT SESSION [ErrorLogger] ON SERVER STATE = START
Et de revoir les erreurs
SELECT CONVERT (XML, event_data) AS data
FROM sys.fn_xe_file_target_read_file ('C:\Temp\error_logger*.xel', 'C:\Temp\error_logger*.xem', NULL, NULL)