2010-05-10 27 views
21

Tôi có gói SSIS với luồng điều khiển chứa một loạt các tác vụ sql thực thi theo trình tự.chọn lọc thực thi tác vụ trong luồng điều khiển ssis

Tôi cần kiểm tra cờ cho mỗi tác vụ và chạy tác vụ nếu được đặt, nếu không bỏ qua và chuyển sang bước tiếp theo.

Mỗi tác vụ này thực thi proc được lưu trữ. Vì vậy, tôi có thể kiểm tra trong proc và "Return" nếu không được thiết lập. Tôi đang tìm kiếm một giải pháp "SSIS" nếu có.

TIA

PS

Trả lời

25

giữa nhiệm vụ kiểm soát dòng chảy của bạn, nhấp vào mũi tên và chọn Edit. Khi bạn thực hiện việc này, bạn sẽ nhận được một hộp thoại cho phép bạn kiểm tra "ràng buộc" (thành công, hoàn thành hoặc thất bại) của tác vụ, "biểu thức" (nghĩa là bạn có thể thực hiện tác vụ sql thực hiện của mình trả về một giá trị, lưu trữ giá trị đó trong một biến và kiểm tra giá trị của biến đó trong một biểu thức để xác định xem có tiếp tục xuống đường dẫn bạn đang chỉnh sửa) hay không, "biểu thức và ràng buộc" và "biểu thức hoặc ràng buộc". Hai cái cuối cùng là giống nhau trừ logic. "Biểu thức và ràng buộc" đòi hỏi một điều kiện thực sự trên cả biểu thức và ràng buộc, "biểu thức hoặc ràng buộc" đòi hỏi một điều kiện thực sự chỉ trên một biểu thức và ràng buộc.

+0

Tôi chỉ có một đường dẫn. Và các bước trong đường dẫn đó cần kiểm tra cờ, nếu không được đặt thì hãy chuyển đến bước trong đường dẫn. IS có thể với "hạn chế"? –

+0

Không, Ràng buộc chỉ kiểm tra trạng thái thực thi của tác vụ mà đầu vào của nó được kết nối. Nếu nhiệm vụ Succeeds, thì kiểm tra ràng buộc sẽ là true nếu được đặt thành Success, nếu tác vụ thất bại, thì kiểm tra ràng buộc sẽ là true nếu được đặt thành Failure, Constraint là true bất cứ khi nào nhiệm vụ hoàn thành nếu được đặt thành Completion. Bạn muốn Biểu thức. Trong proc được lưu trữ của bạn, trả về giá trị cờ của bạn làm đầu ra. Đặt đầu ra đó vào một biến. Trong đường dẫn của bạn, hãy sử dụng Biểu thức và kiểm tra biến đó với tình trạng của bạn. Nếu đúng, đường dẫn sẽ chuyển sang bước tiếp theo trong luồng của bạn. –

+0

Còn nhiệm vụ đầu tiên thì sao? – GeorgiG

40

Tôi nghĩ câu hỏi của bạn giống như câu hỏi tôi muốn kiểm soát việc thực thi tác vụ "nội tuyến" trong luồng điều khiển của mình. Cách dễ nhất mà tôi đã tìm thấy không liên quan đến biểu thức trên các đầu nối dữ liệu giữa các đối tượng dòng điều khiển mà là sử dụng các biểu thức trên đối tượng điều khiển và đặt giá trị "Tắt" bằng cách sử dụng một biểu thức. Bằng cách này trên thực thi, đối tượng bị bỏ qua hoặc không dựa trên đánh giá biểu thức.

Ví dụ, tôi muốn thực hiện "Thực thi nhiệm vụ SQL" để xóa chỉ mục của tôi dựa trên việc biến có tên "ExtractType" bằng "Đầy đủ" hay không. Nếu đó là sau đó tôi muốn loại bỏ các chỉ mục trên các bảng của tôi trước khi làm đầy tải của tôi.

+1

Tốt bắt, tôi đã quên về những biểu hiện ở đó. Thật dễ dàng để bỏ qua tất cả các địa điểm trong SSIS mà bạn có thể sử dụng các biểu thức. Nếu tôi có thể bỏ phiếu cho câu trả lời của bạn lên xa hơn tôi sẽ. Cảm ơn bạn đã trả lời câu hỏi này! –

+0

Tuyệt vời! Tôi sẽ thử xem. Cảm ơn bạn VM! – GeorgiG

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