sql >> データベース >  >> RDS >> Sqlserver

SQLストアドプロシージャにログとエラーレポートを実装するにはどうすればよいですか?

    これは現時点では役に立ちませんが、SQL Server 2008のユーザーにとっては興味深いかもしれません。SQLServer2008では、XEventsを使用して、すべてのエラーの詳細(ステートメントテキストを含む)を中央の場所に記録できます。

    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
    

    そして、エラーを確認するには

    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. 複合キーを持つエンティティクラスで自動インクリメントが機能しない

    2. Smartyによるページネーション(前へ|次へ)

    3. mysqlは選択時に無効な日付を許可します

    4. PHPとMySQLの可能な最小および最大の日付