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

Jak zmodyfikować zmienną w SSIS?

Jak zauważyli @Yuck i @devarc, istnieją dwie różne i różne wartości a Zmienna trzyma. Wartość czasu projektowania to wartość przypisywana podczas tworzenia zmiennej po raz pierwszy. W Twoim przypadku zmienna przechowuje C:\Test.txt jako wartość czasu projektowania. Za każdym razem, gdy otworzysz pakiet, wyświetli się C:\Test.txt, dopóki nie zmienisz go w

Aby zmienić wartość zmiennej podczas działania pakietu, twoje opcje to ustawienie wartości lub jej obliczenie. Tutaj utworzyłem zmienną na poziomie pakietu CurrentFile o wartości C:\Test.txt

Jedną z rzeczy, która często wpada w błąd, jest to, że poprawnie zmienili wartość czasu wykonywania, ale kiedy uruchamiają ją w BIDS, widzą „starą” wartość. Wartość wyświetlana w oknie Zmienne nie zmienia się podczas wykonywania pakietu.

Podczas wykonywania pakietu moje okno Zmienne nadal pokazuje wartość czasu projektowania (C:\Test.txt), ale prawdziwa wartość jest odzwierciedlona w oknie Locals (C:\Test2.txt)

Ustawianie wartości

Wartość prawie wszystkiego w SSIS można ustalić w czasie wykonywania za pomocą zestawu pełnych opcje wiersza poleceń lub przez konfigurację źródła. Największą różnicą w moim umyśle jest to, że takie podejście polega na tym, że wartość zawsze będzie wartością przez cały okres życia wykonania pakietu. Sekwencyjne lub równoległe wywołania pakietu mogą zmienić tę wartość, ale to wykonanie wartość pozostanie stała (z wyjątkiem wyraźnej modyfikacji wartości.

/USTAW

Wykonywanie wiersza polecenia (dtexec.exe), kliknięcie prawym przyciskiem myszy pakietu i uruchamianie z systemu plików (dtexecUI.exe) lub tworzenie kroku zadania agenta SQL w usługach integracji programu SQL Server — wszystko to umożliwia podanie wartości czasu wykonywania za pomocą polecenia SET . Korzystając z powyższej zmiennej, następujące polecenie ustawi wartość czasu wykonywania na C:\Test2.txt

dtexec /file C:\Generated.dtsx /set \Package.Variables[User::CurrentFile].Properties[Value];"C:\Test2.txt"

Konfiguracja

Usługi SSIS oferują opcję tworzenia źródeł konfiguracji, aby zapewnić pakietom wartości czasu wykonywania. Artykuł, do którego połączyłem się powyżej, znacznie lepiej opisuje zalety i wady opcji konfiguracyjnych niż tutaj. Powiem, że zwykle używam obu - moje polecenie SET konfiguruje menedżera połączeń, który jest następnie używany przez pakiet do znalezienia "pełnego" zestawu konfiguracji pakietu.

Obliczanie wartości

W SSIS istnieje wiele zadań, które mogą zmienić wartość zmiennej, a także użyć wyrażeń do zmiany wartości. Widzę je jako rzeczy, które mają wartość, gdy paczka jest w locie.

Zadania

Zadanie skryptu jest jednym z najczęściej używanych mechanizmów dla początkujących, ale uważam, że inne narzędzia w zestawie narzędzi SSIS zwykle lepiej nadają się do zmiany wartości zmiennych.

Kontener pętli foreach i Wykonaj zadanie SQL to dwa inne duże zadania, na które powinieneś zwrócić uwagę, aby przypisać wartość zmiennej.

Wyrażenia

Wyrażenia to najwspanialsze słodycze w zestawie narzędzi SSIS. Prawie każda „rzecz” w SSIS uwidacznia właściwości konfiguracji. Jest to pomocne, ale używanie przypisywania wyrażenia do budowania tych właściwości jest znakomite.

Na przykład wyobraź sobie 3 zmienne RootFolder , FileName i ComputedCurrentFile z wartościami C:\, File2.txt i pustym ciągiem. W oknie Właściwości ComputedCurrentFile zmienilibyśmy wartość EvaluateAsExpression z False na True, a następnie użylibyśmy wyrażenia takiego jak @[User::RootFolder]+ "\\" [email protected][User::FileName] To po prostu łączy ze sobą wartość dwóch pierwszych zmiennych. Może to być pomocne, jeśli nazwa pliku do przetwarzania była standardowa, ale folder źródłowy często się zmieniał. Lub jeśli mówimy o danych wyjściowych, często używa się wyrażeń do zbudowania nazwy pliku wyjściowego na podstawie daty i prawdopodobnie czasu uruchomienia pakietu.

Wreszcie nic nie stoi na przeszkodzie mieszaniu i dopasowywaniu tych podejść. Zwykle używam konfiguracji, aby wskazać modułowi wyliczania plików właściwy folder początkowy, a następnie użyć obliczonych wartości do zidentyfikowania bieżącego pliku do przetworzenia.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Pobierz dzień tygodnia w SQL Server 2005/2008

  2. Użyj zmiennej z TOP w instrukcji select w SQL Server bez robienia jej dynamicznej

  3. Jak zaktualizować z SELECT w SQL Server?

  4. Jak obniżyć wersję pliku MDF programu SQL 2008 do użytku w programie SQL 2005?

  5. Jak utworzyć relację między tabelą a widokiem w Entity Framework