2011-12-05 32 views
8

Tôi có gói SSIS chạy lúc 8 giờ tối vào buổi tối cho Năm 2011.Thực hiện cùng một gói SSIS với các thông số khác nhau tại thời điểm khác nhau

Tôi muốn chạy cùng một gói lúc 8:30 tối cho Năm 2010.

Tôi đã tạo tệp cấu hình Gói SSIS và chấp nhận tham số "Năm". Bất cứ khi nào tôi chạy, tôi cần phải mở một tập tin, thay đổi giá trị và chạy nó.

Có thể thiết lập lịch biểu và đặt giá trị Năm theo kiểu động không?

Hoặc sử dụng 2 tệp cấu hình khác nhau là cách duy nhất để giải quyết?

Cảm ơn tất cả.

Trả lời

16

Thách thức khi sử dụng phương pháp tiếp cận tệp cấu hình là bạn cần phải sửa đổi liên tục tệp. SSIS sẽ không tải lại tệp cấu hình sau khi nó bắt đầu để bạn có thể hình dung được 8:05 và 8:35 PM công việc hoán đổi các tệp cấu hình nhưng điều đó sẽ trở nên lộn xộn và phá vỡ ở một điểm nào đó.

Tôi sẽ xử lý tình huống này với các biến dòng lệnh (/set option in dtexec). Nếu bạn đang chạy các gói từ dòng lệnh, nó sẽ trông giống như dtexec.exe /file MyPackage.dtsx Thậm chí nếu bạn đang sử dụng SQL Agent, đằng sau hậu trường nó xây dựng các đối số dòng lệnh.

Phương pháp này giả định bạn tạo hai công việc khác nhau (so với 1 công việc được lên lịch 2x mỗi ngày). AgentMyPackage2011 có một bước công việc của SSIS có kết quả trong

  • dtexec /file MyPackage.dtsx /Set \Package.Variables[User::Year].Properties[Value];\"2011\"

và AgentMyPackage2012 có một bước công việc của SSIS có kết quả trong

  • dtexec /file MyPackage.dtsx /Set \Package.Variables[User::Year].Properties[Value];\"2012\"

Qua GUI, nó trông giống như SQL Agent Set values tab

SQL Agent Command line tab

Không có GUI hoặc công cụ chọn cho thuộc tính bạn muốn cấu hình. Tuy nhiên, kể từ khi bạn đã tạo ra một tập tin .dtsConfig cho gói của bạn, mở tập tin đó lên và tìm kiếm một phần như

<Configuration ConfiguredType="Property" Path="\Package.Variables[User::Year].Properties[Value]" ValueType="Int32"> 
<ConfiguredValue>2009</ConfiguredValue> 

Các tập tin đã có đường dẫn đến "điều" bạn đang cố gắng để cấu hình quá nhấn vào chương trình gọi và sau đó tắt phần năm của cấu hình gói.

Cuối cùng, liên kết đến SSIS Configuration Precedence vì có sự khác biệt trong mô hình 2005 so với năm 2008. Tôi thấy bạn chỉ ra 2008 trong vé của bạn nhưng đối với người đọc trong tương lai, nếu bạn đang sử dụng cả hai/SET và nguồn cấu hình (xml, máy chủ sql, đăng ký, biến môi trường) thứ tự của các hoạt động khác nhau giữa các phiên bản.

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