Sqlserver
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> Sqlserver

Làm thế nào để thực hiện ghi nhật ký và báo cáo lỗi trong các thủ tục được lưu trữ trong SQL?

Điều này sẽ không giúp bạn vào lúc này nhưng có thể quan tâm đến những người sử dụng SQL Server 2008. Trên SQL Server 2008 XEvents có thể được sử dụng để ghi lại tất cả các chi tiết lỗi (bao gồm cả văn bản câu lệnh) vào một vị trí trung tâm.

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

Và để xem lại các lỗi

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. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Ba xu hướng hàng đầu ảnh hưởng đến các DBA chịu trách nhiệm giám sát máy chủ SQL

  2. Làm cách nào để bạn chỉ định một số cổng khác trong SQL Management Studio?

  3. Làm thế nào để thực thi tệp .sql bằng quyền hạn?

  4. SQL DELETE với INNER JOIN

  5. Kiểu dữ liệu văn bản của SQL Server Maxlength =65,535?