Frage

Ich habe ein SSIS-Paket, die den folgenden: Wählt die Verbindungszeichenfolgen aus einer Tabelle von Servern. Die Verbindungszeichenfolge ist entweder der Name des Servers zusammen mit der Domäne (d Dalin.myhouse.com) oder ist die direkte IP an einen Server.

Das Paket geht durch jede Verbindungszeichenfolge und füllt eine definierte ‚globale‘ Variable. Diese Variable wurde mit der Variable-Designer erstellt. Für jede Verbindungszeichenfolge, wird das Paket Informationen über den Server abgerufen werden.

Das Problem, das ich habe, ist, wenn Sie einen Server-IP zur Liste hinzufügen, der ‚Anzeigename‘ kann zu diesem Zeitpunkt nicht bekannt sein, so würde ich nur die Server-IP habe sowohl in der Verbindungszeichenfolge Spalte und der freundlichen Namen Spalte der Tabelle. Ich möchte, nach dem Ende einer Iteration, Update, das die Anzeigename Spalte des Server-Eintrags in der Tabelle, so dass es die Servernamen vom Server mit SERVER ( ‚Server‘)

gezogen hat

Um dies zu tun, ich mag eine ExecuteSQL Aufgabe mit dem folgenden Code verwenden:

UPDATE [myDB].[mySchema].[myServers]
SET [ServerName] = VarA
WHERE ConnectionString = VarB

Der vorherige Code wird unter Verwendung eine statische Verbindung zu dem Server, auf dem die myservers Tabelle befindet.

VarA stellt den globalen Wert ich den Server einstellen mag, die unter Verwendung SERVER in einem separaten SQLTASK eingestellt werden würden ( ‚Server‘). Es muss in einer separaten Aufgabe sein, weil es die aktuelle Iteration unter Verwendung des gleichen Servers zu einem Server verbinden würde verwendet.

VARB zu Beginn jeder Iteration zum nächsten Connection String in der Liste gesetzt wird.

Ich habe Beispiele zu sehen, wie diese verwenden, für die Skripttask und Script-Komponenten, aber ich möchte einfach die ExecuteSQL Aufgabe verwenden, um dies zu erreichen.

Zusammenfassung:
Eine Verbindung mit ServerA und füllen zwei globale Variablen.
Eine Verbindung mit ServerB und verwenden die beiden globalen Variablen eine bestimmte Zeile in einer Tabelle zu aktualisieren.
Irgendwelche Ideen?

War es hilfreich?

Lösung

Ich kann nicht sehen, wie dies erreicht werden kann, ohne die Variablen innerhalb eines Script Task gesetzt werden, da ExecuteSQL Aufgaben an eine Datenbank-Verbindung eingestellt werden müssen. Script Aufgaben arbeiten für das, weil ihre Verbindung im Rahmen des Servers ist, die sie ausführen wird. Davon abgesehen, die Sie vor einer Skripttask zu dieser ExecuteSQL Aufgabe verwenden könnte, die die Variablen auf den lokalen Serverinstanz setzt.

Andere Tipps

Sie müssen also die Execute SQL Task-Parameter zu übernehmen?

http://msdn.microsoft.com/en-us/library /ms187685.aspx

Vielleicht habe ich falsch verstanden ...

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top