2010-10-14 17 views
6

Có một bảng trong cơ sở dữ liệu của tôi chứa 100 cột. Tôi muốn tạo trình kích hoạt để kiểm tra sửa đổi cho mọi hoạt động cập nhật.Có một cách thanh lịch để theo dõi việc sửa đổi tất cả các cột của một bảng trong SQL Server 2008

Điều tôi có thể nghĩ là tạo điều khoản cập nhật cho tất cả các cột nhưng tất cả đều là các tập lệnh tương tự. Vì vậy, có cách nào thanh lịch để làm điều đó?

+0

Tôi chỉ có thể nghĩ ra các phương pháp "sức mạnh vũ phu" rõ ràng. Nhìn về phía trước để thấy bất kỳ "thanh lịch" giải pháp này. –

Trả lời

3

Kiểm tra Change Data Capture

Cập nhật
CDC cung cấp theo dõi của tất cả các chi tiết của sự thay đổi. Sẵn từ SQL Server 2008.

(chụp Thay đổi dữ liệu chỉ có sẵn trên các Doanh nghiệp, phát triển, và đánh giá các phiên bản của SQL Server Nguồn:. http://msdn.microsoft.com/en-us/library/bb522489.aspx)

Nhiều giải pháp nhẹ là Change Tracking (Sync Framework) , là code4life mentioned before, có sẵn từ SQL server 2005.

Update2:
câu hỏi liên quan (với rất nhiều sublinks):

+0

1 lựa chọn tốt nhất trong SQL Server 2008 và lên –

+0

Yêu cầu phiên bản Enterprise. –

+0

Hài hước, tôi nhớ lại rằng tôi đã đọc CDC yêu cầu EE nhưng không thể tìm thấy bất kỳ tham chiếu nào.ChangeTracking là phiên bản độc lập, đúng không? –

1

Có nguồn tài nguyên này trên MSDN mà bạn có thể thấy hữu ích:

Tracking Changes in the Server Database (including SQL Server 2008)

Tôi không chắc chắn nếu bạn đang sử dụng SQL Server 2008 mặc dù.

+2

Để công bằng, tiêu đề không nói rằng khi code4life trả lời – Gareth

+0

Không hoàn toàn khả thi. – zsong

+0

@sza bạn có thể xây dựng không? Có những tài nguyên khác mà tôi đã không đề cập đến, có lẽ đây là một phù hợp hơn ... – code4life

0

Về mặt lý thuyết, bạn có thể sử dụng 1 trình kích hoạt và chọn COLUMNS_UPDATED() để biết cột nào đã thay đổi. (không được kiểm tra) Xem thêm here

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