2010-02-22 30 views
6

Tôi thường gặp phải tình huống trong các gói SSIS nơi tôi chạy Lệnh SQL để trả về một tập hợp các hàng từ kết nối ADO. Có những trường hợp tôi muốn chi nhánh dựa trên số hàng được trả về. Bộ kết quả ado được lưu trữ trong kiểu dữ liệu của đối tượng SSIS. Có cách nào trong biểu thức SSIS hoặc thành phần Script để có được số lượng hàng không?Cách xác định số hàng trong bộ dữ liệu SSIS

Trả lời

13

Thay vì sử dụng tác vụ Execute Sql, hãy sử dụng tác vụ dataflow như thế này.

  1. Sử dụng một phần nguồn để lấy dữ liệu của bạn
  2. Sử dụng một thành phần rowcount để lưu trữ rowcount của bạn thành một biến
  3. Sử dụng một thành phần điểm đến recordset và lưu trữ trong biến ban đầu của bạn (loại System.Object)

Sau đó quay trở lại luồng điều khiển và tiếp tục như bạn đã lên kế hoạch, sử dụng biến đếm hàng để phân nhánh luồng điều khiển của bạn.

+0

Đây là một câu trả lời tuyệt vời và một bước nhảy vọt tuyệt vời trong tôi để tìm hiểu nhiệm vụ Luồng dữ liệu. Nhiều đánh giá cao 3 năm sau! –

+0

Rất vui khi được nghe! Cảm ơn @MattAkers –

-1

Bạn có thể tạo một hạn chế ưu tiên sau khi thực thi nhiệm vụ SQL với biến datatype đối tượng, @ [User :: objectvariable]> 0 dưới dạng biểu thức trong ràng buộc ưu tiên. Tuy nhiên trong thực thi nhiệm vụ SQL bạn sẽ nhận được resultset đến biến đối tượng.

+0

Không thể làm cho nó hoạt động ... – Tequila

+0

@Nanda Hãy thử kiểm tra câu trả lời của bạn trước khi đăng chúng, bạn sẽ thấy lỗi. –

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