2012-01-16 47 views
7

Câu hỏi rất ngắn và thẳng: Tôi muốn bắt lỗi bằng cách sử dụng try..catch và đăng nhập vào tệp. Điều này có thể thực hiện được trong SQL Server 2008 không?Lỗi đăng nhập vào SQL Server 2008

Mọi chỉ đường, trợ giúp đều được chào đón.

Trả lời

1

Xem nhật ký lỗi SQL Server bằng cách sử dụng SQL Server Management Studio hoặc bất kỳ trình soạn thảo văn bản nào.

Theo mặc định, nhật ký lỗi được đặt tại Program Files\Microsoft SQL Server\MSSQL.n\MSSQL\LOG\ERRORLOGERRORLOG.n tệp.

Đi qua Viewing the SQL Server Error Log trang

8

Vâng, bạn có thể.

Chỉ cần triển khai thử như được mô tả ở đây TRY...CATCH. Lỗi ghi nhật ký có thể được ghi lại trong ứng dụng hoặc bằng sql bằng cách ghi lỗi vào bảng.

Nếu bạn muốn đăng nhập vào một tệp, bạn có thể làm điều đó bằng cách sử dụng SQLCLR. Đánh dấu vào câu trả lời ở đây

How to log in T-SQL

Như vậy là một số câu hỏi tương tự, bạn có thể kiểm tra.

Logging into table in SQL Server trigger

Best Practices - Stored Procedure Logging

phương pháp khác là sử dụng Log4Sql

+0

Tại sao lưu ý lại? Câu trả lời duy nhất, mang lại một ví dụ về cách viết vào một tệp bằng sqlclr. – hgulyan

+1

Xin lỗi, bỏ lỡ 8-) +1 –

0

Như thế này, chứ không phải chính xác để nộp, nhưng để eventlog, tôi nghĩ rằng văn bản cho tập tin là chỉ có thể với thủ tục CLR:

BEGIN TRY 
    Do some error 
END TRY 
Begin CATCh 
    Declare @error nvarchar(max) = error_message()+' your data' 
    exec master..xp_logevent 50001, @error, 'error' 
    --Notify host application 
    RAISERROR(@error, 16, 1) 
END CATCH 
+0

Msg 102, Cấp 15, Tiểu bang 1, Dòng 2 Cú pháp không chính xác gần 'Do'. Msg 102, Level 15, State 1, Line 8 Cú pháp không chính xác gần 'error_message'. – Steam

+0

@blasto Đã sửa, nhưng nó rất rõ ràng. Phải không? –

+0

Làm thế nào điều này sẽ làm việc với một ROLLBACK trong Bắt đầu Catch? –

Các vấn đề liên quan