Tôi muốn viết một dịch vụ (có thể là trong C#) để theo dõi một bảng cơ sở dữ liệu. Khi một bản ghi được chèn vào bảng, tôi muốn dịch vụ lấy dữ liệu mới được chèn vào và thực hiện một số logic nghiệp vụ phức tạp với nó (quá phức tạp đối với TSQL).Trình kích hoạt SQL CLR có thể thực hiện việc này không? đây có phải là cách tốt hơn không?
Một tùy chọn là để dịch vụ định kỳ kiểm tra bảng để xem liệu các bản ghi mới đã được chèn chưa. Vấn đề với cách làm đó là tôi muốn dịch vụ biết về chèn ngay khi chúng xảy ra, và tôi không muốn giết hiệu năng cơ sở dữ liệu.
Thực hiện một nghiên cứu nhỏ, có vẻ như việc viết trình kích hoạt CLR có thể thực hiện công việc. Tôi có thể viết kích hoạt trong C# mà cháy khi một chèn xảy ra, và sau đó gửi dữ liệu mới được chèn vào một dịch vụ Windows hoặc WCF.
Bạn nghĩ gì, việc sử dụng trình kích hoạt SQL CLR tốt (hoặc thậm chí có thể)?
Bất kỳ ý tưởng nào khác về cách thực hiện điều này?
Chính xác những gì tôi định đề xuất. Nó sẽ được an toàn giao dịch và sẽ lưu giữ các bản ghi đã xử lý và chưa xử lý trong một bảng sẽ không ảnh hưởng đến các bảng ứng dụng chính. 1 cho giải pháp này! – evilhomer
Sử dụng Nhà môi giới dịch vụ máy chủ SQL –
Ý tưởng hay, ngoại trừ việc bạn mất tất cả dấu vết của nội dung đã thay đổi (tức là nội dung của bảng ĐÃ XÓA, chỉ có sẵn trong khi thực hiện trình kích hoạt). Phụ thuộc vào những gì bạn cần, tôi cho là vậy. –