Tôi có một cách tiếp cận khác để trả lời cả hai câu hỏi. Tôi thường tránh sử dụng trình kích hoạt cho đến khi nó là lựa chọn cuối cùng vì nó thêm chi phí không cần thiết trên cơ sở dữ liệu.
So sánh giữa các trình kích hoạt và quy trình được lưu trữ
- Có thể dễ dàng xem các mối quan hệ bảng, các ràng buộc, chỉ mục, quy trình được lưu trữ trong cơ sở dữ liệu nhưng rất khó xem các trình kích hoạt.
- Các trình kích hoạt thực thi ẩn đối với ứng dụng ứng dụng khách. Chúng không hiển thị hoặc có thể được truy tìm trong mã gỡ lỗi.
- Rất dễ quên các trình kích hoạt và nếu không có đơn vị tài liệu sẽ rất khó để tìm ra các nhà phát triển mới cho sự tồn tại trực tuyến.
- Các trình kích hoạt chạy mọi lúc khi các trường cơ sở dữ liệu được cập nhật và có chi phí trên hệ thống. Nó làm cho hệ thống chạy chậm hơn.
Nói đủ rồi, đây là lý do tại sao tôi thích các procs được lưu trữ hơn. Bạn có thể tạo một tệp công việc (ví dụ:nó thực thi sau mỗi 30 phút hoặc bất kỳ thời gian nào khác) thông qua agent. Bạn có thể sử dụng logic để chèn vào tệp công việc đó. Bằng cách này, dữ liệu của bạn trong tree table
gần với thời gian thực.
hiện tham chiếu để tạo tác nhân:
http://msdn.microsoft.com/en-us/library/ms191128 (v =sql.90) .aspx
http://msdn. microsoft.com/en-us/library/ms181153(v=sql.105).aspx