Sqlserver
 sql >> Baza danych >  >> RDS >> Sqlserver

Wykonywanie tego samego pakietu SSIS z różnymi parametrami w różnym czasie

Wyzwaniem przy korzystaniu z pliku konfiguracyjnego jest konieczność ciągłego modyfikowania pliku. SSIS nie załaduje ponownie pliku konfiguracyjnego po uruchomieniu, więc można sobie wyobrazić zadania o 20:05 i 20:35, które wymieniają pliki konfiguracyjne, ale w pewnym momencie może się to stać bałaganem i zepsuć.

Poradziłbym sobie z tą sytuacją za pomocą zmiennych wiersza poleceń (/set opcja w dtexec ). Jeśli uruchamiasz pakiet z wiersza poleceń, wygląda to mniej więcej tak:dtexec.exe /file MyPackage.dtsx Nawet jeśli używasz agenta SQL, za kulisami buduje on te argumenty wiersza poleceń.

To podejście zakłada utworzenie dwóch różnych zadań (w przeciwieństwie do 1 zadania zaplanowanego 2x dziennie). AgentMyPackage2011 ma etap zadania SSIS, który skutkuje

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

a AgentMyPackage2012 ma etap zadania SSIS, który skutkuje

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

W interfejsie graficznym wyglądałoby to mniej więcej

Nie ma GUI ani selektora dla właściwości, którą chcesz skonfigurować. Jednakże, ponieważ już utworzyłeś plik .dtsConfig dla swojego pakietu, otwórz ten plik i poszukaj sekcji, takiej jak

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

Plik ma już ścieżkę do "rzeczy", którą próbujesz skonfigurować, więc wprowadź ją do swojego programu wywołującego, a następnie wyłącz część konfiguracji pakietu dotyczącą roku.

Na koniec link do Kolejności konfiguracji SSIS ponieważ istnieją różnice w modelu 2005 vs 2008. Widzę, że wskazałeś 2008 w swoim zgłoszeniu, ale dla przyszłych czytelników, jeśli używasz zarówno /SET, jak i źródła konfiguracji (xml, serwer sql, rejestr, zmienna środowiskowa), kolejność operacji różni się w zależności od wersji.




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Utwórz funkcję T-SQL z parametrem tabeli

  2. Jak przekonwertować kolumnę varchar na kolumnę bitową w SQL SERVER

  3. Dlaczego przesyłanie/konwertowanie z int zwraca gwiazdkę

  4. Kopiuj tabele z jednej bazy danych do drugiej w SQL Server

  5. Jak oskryptować rolę bazy danych serwera SQL?