sql >> Databáze >  >> RDS >> Sqlserver

Jak implementovat protokolování a hlášení chyb v uložených procedurách SQL?

To vám v tuto chvíli nepomůže, ale může to být zajímavé pro uživatele SQL Server 2008. Na SQL Server 2008 lze XEvents použít k protokolování všech podrobností o chybě (včetně textu příkazu) do centrálního umístění.

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

A zkontrolovat chyby

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. Android + MySQL pomocí com.mysql.jdbc.Driver

  2. LOAD DATA LOCAL INFILE nefunguje v RDS

  3. Data emodži načtená prostřednictvím připojení ODBC se zobrazí jako otazník

  4. Je možné zadat podmínku v Count()?