sql >> Database >  >> RDS >> Sqlserver

Hoe logboekregistratie en foutrapportage implementeren in opgeslagen SQL-procedures?

Dit zal je op dit moment niet helpen, maar kan interessant zijn voor mensen op SQL Server 2008. Op SQL Server 2008 kan XEvents worden gebruikt om alle foutdetails (inclusief instructietekst) op een centrale locatie te loggen.

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

En om de fouten te bekijken

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)


  1. FROM_TZ() Functie in Oracle

  2. TIME_TO_SEC() Voorbeelden – MySQL

  3. JPA @Version veld wordt niet verhoogd

  4. Hoe kan ik een optionele JOIN doen met SQL?