Thách thức với việc sử dụng phương pháp tiếp cận tệp cấu hình là bạn sẽ cần phải liên tục sửa đổi tệp. SSIS sẽ không tải lại tệp cấu hình sau khi nó khởi động, vì vậy bạn có thể hình dung các công việc 8:05 và 8:35 tối hoán đổi các tệp cấu hình nhưng điều đó sẽ trở nên lộn xộn và bị hỏng vào một lúc nào đó.
Tôi sẽ xử lý tình huống này bằng các biến dòng lệnh ( / đặt tùy chọn trong dtexec ). Nếu bạn đang chạy gói từ dòng lệnh, nó sẽ trông giống như dtexec.exe /file MyPackage.dtsx
Ngay cả khi bạn đang sử dụng SQL Agent, thì đằng sau nó là 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 2 lần một ngày) .AgentMyPackage2011 có một bước công việc của SSIS dẫn đến
-
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 dẫn đến
-
dtexec /file MyPackage.dtsx /Set \Package.Variables[User::Year].Properties[Value];\"2012\"
Thông qua GUI, nó trông giống như
Không có GUI hoặc bộ chọn cho thuộc tính bạn muốn định cấu hình. Tuy nhiên, vì bạn đã tạo tệp .dtsConfig cho gói của mình, hãy mở tệp đó lên và tìm phần như
<Configuration ConfiguredType="Property" Path="\Package.Variables[User::Year].Properties[Value]" ValueType="Int32">
<ConfiguredValue>2009</ConfiguredValue>
Tệp đã có đường dẫn đến "thứ" mà bạn đang cố định cấu hình để đưa nó vào chương trình gọi của bạn và sau đó tắt phần năm của cấu hình gói.
Cuối cùng, một liên kết đến Thứ tự cấu hình SSIS vì có sự khác biệt trong mô hình 2005 và 2008. Tôi thấy bạn đã nêu năm 2008 trong phiếu của mình nhưng đối với những người đọc trong tương lai, nếu bạn đang sử dụng cả / SET và nguồn cấu hình (xml, máy chủ sql, sổ đăng ký, biến môi trường) thì thứ tự hoạt động khác nhau giữa các phiên bản.