sql >> Databasteknik >  >> RDS >> Sqlserver

Hur implementerar man loggning och felrapportering i SQL-lagrade procedurer?

Detta hjälper dig inte för tillfället men kan vara av intresse för personer på SQL Server 2008. På SQL Server 2008 kan XEvents användas för att logga alla feldetaljer (inklusive satstext) till en central plats.

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

Och för att granska felen

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. Skillnad mellan kodning och sortering?

  2. När ska man överväga Solr

  3. trigga mysql okänd tabell

  4. Hur använder man en PostgreSQL-behållare med befintliga data?