Sqlserver
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> Sqlserver

Thực thi cùng một Gói SSIS với các thông số khác nhau tại các thời điểm khác nhau

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.




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Làm thế nào để tìm lý do bế tắc trong máy chủ sql ro14?

  2. So sánh giá trị của nhiều cột từ hai cơ sở dữ liệu khác nhau

  3. kết hợp các trường Ngày và Giờ thành DateTime, SQL Server 2008

  4. Tạo tên bảng là các từ / từ khóa dành riêng trong MS SQL Server

  5. Bắt buộc người dùng viết mã đầu tiên luôn khởi tạo cơ sở dữ liệu không tồn tại?