Wert einer Abgeleiteten Spalte mit führenden Nullen ergänzen

Hier am Beispiel eines 7stelligen Werts:
RIGHT(„0000000“ + ((DT_STR,7,1252)@[User::Zahl]),7)

Die Syntax lässt sich auch für eine rechtsbündige Ausgabe verwenden.
Dabei sind die 7 Nullen nur durch 7 Leerzeichen zu ersetzen:
RIGHT(„             “ + ((DT_STR,7,1252)@[User::Zahl]),7)

IsNull in SSIS

Innerhalb der Datentransformation kann es notwendig sein einen NULL-Wert mit einem Standardwert zu ersetzen.
Für diesen Fall gibt es in T-SQL Funktion IsNull. Auch in SSIS gibt es diese Funktion, aber mit einem „kleinen“ Unterschied in der Syntax:

IsNull(Spaltenname)? "Ersatzwert": Spaltenname

SSIS-Pakete entwickeln

Frage:
Das SQL Server Management Studio bietet keinerlei Möglichkeiten zur Entwicklung eines SSIS-Pakets.
Mit welchem Tool kann ein SSIS-Paket entwickelt werden?

Lösung:
SSIS-Pakete werden mit dem Business Intelligence Development Studio entwickelt.
Diese Visual Studio Umgebung ist Bestandteil aller SQL Server 2005-Versionen – mit Ausnahme der SQL Server Express Edition
.

/* übernommen aus der Original sqlfaq.de */

SSIS-Paket wird nicht ausgeführt

Frage:
Die Ausführung eines SSIS-Pakets wird mit der Fehlermeldung „Error loading value „30.12.2000“ from node „DTS:VariableValue“ abgebrochen.

Lösung:
Die Ursache für den Abbruch liegt am Standardwert einer datetime-Variablen.
Dieser wird als String im Format der entsprechenden Ländereinstellung des Entwicklungsrechners gespeichert. Weicht die Ländereinstellung des Entwicklungsrechners von der des ausführenden Rechners ab, kann das Datum nicht interpretiert werden und die Ausführung wird abgebrochen.
Das Datum muss manuell in der dtsx-Datei an die entsprechende Ländereinstellung angepasst werden.
Mehr dazu im Knowlodgebase-Artikel 918038.

Eine weitere Lösung gibt es von Norbert Mächler:
Das Paket konnte nach der Neuregistrierung von msxml3.dll und msxml6.dll mit regsvr32 msxml3.dll und regsvr32 msxml6.dll wieder ausgeführt werden
.

/* übernommen aus der Original sqlfaq.de */

Fehler bei geschachtelten DTS

Frage:
In einem DTS-Paket werden mit dem Task Paket ausführen weitere einzelne Pakete ausgeführt. Die Ausführung der einzelnen Pakete innerhalb des Paketes funktioniert.
Wird jedoch das DTS-Paket selbst ausgeführt, bricht die Ausführung mit der Fehlermeldung „Ausführung wurde vom Benutzer abgebrochen“ ab.

Lösung:
Das ist ein bekannter Fehler. Als Workaround muss in den Workfloweigenschaften der einzelnen Task Paket ausführen unter Optionen
die Eigenschaft Auf Hauptthread ausführen aktiviert   werden.

/* übernommen aus der Original sqlfaq.de */

Datenimport aus einer geschützten Access-Datenbank

Frage:
Die Daten einer per MDW-Datei geschützten Access-Datenbank sollen mit einem DTS-Paket in eine SQL Server-Datenbank importiert werden. Nach Auswahl der Access-Datenbank als Quelle und korrekter Eingabe von Benutzername und Kennwort erscheint die Fehlermeldung: „Fehler des DTS Assistenten Fehlerquelle: Microsoft JET Database Engine Die Anwendung kann nicht gestartet werden. Die Informationsdatei für die Arbeitsgruppe fehlt oder ist exklusiv von einem anderen Benutzer geöffnet.“

Lösung:
Der Grund für die Fehlermeldung liegt in dem nicht angegebenen Pfad zur MDW-Datei.
Dieser wird in den erweiterten Verbindungseigenschaften der Access-Verbindung angegeben, die mit der Schaltfläche Erweitert geöffnet werden. Dort muss der Pfad und Name der MDW-Datei in JET OLEDB:System Database eingetragen werden
.

/* übernommen aus der Original sqlfaq.de */

DTS-Paket über Eingabeaufforderung starten

Frage:
Kann ein DTS-Paket direkt über die Eingabeaufforderung des Betriebssystems gestartet werden?

Lösung:
DTS-Pakete werden mit dtsrun ausgeführt. Selbst der SQL Server Agent nutzt lediglich dtsrun.
Die genaue Erläuterung aller möglichen Parameter sind in der Online-Hilfe unter dtsrun zu finden.
Dieses Beispiel startet auf dem Server „servername“ mit der Anmeldung „sa“ das DTS-File „dtsbsp.dts“:
dtsrun /S servername /U sa /P sapwd /F c:\dtsbsp.dts

/* übernommen aus der Original sqlfaq.de */

Fehlende Indizes nach Datenimport per DTS

Frage:
Per DTS Import-/Export-Assistent werden alle Objekte aus einer bestehenden Datenbank in eine neue Datenbank importiert. Nach dem Import fehlen jedoch die Indizies, Einschränkungen und Defaults der Tabellen.

Lösung:
Der DTS Import-/Export Assistenten erstellt beim Import nur die Tabellen, die auf der Zieldatenbank noch nicht vorhanden sind. Dabei wird ein CREATE TABLE mit den jeweiligen Spalten ausgeführt. Indizies, Defaults, ForeignKeys und Einschränkungen werden dabei nicht erstellt.
Dies ist nur mit der Option Objekte und Daten zwischen SQL Server-Datenbanken kopieren des DTS Import-/Export Assistenten möglich. Auf der folgenden Seite des Assistenten kann der Import genauer definiert werden
.

/* übernommen aus der Original sqlfaq.de */

Unterschiedliche Struktur bei Quell- und Zieltabellen

Frage:
Mit dem DTS Import-/Export-Assistent sollen die Daten von einer Quell- zu einer Zieltabelle importiert werden. Beide Tabellen sind in der Struktur nahezu identisch, bis auf den kleinen Unterschied, dass die zweite Spalte der Quelltabelle in der Zieltabelle nicht existiert. Der Assistent ordnet die Spalten trotz der fehlenden Spalte in der Zieltabelle der Reihe nach zu. Dadurch verschiebt sich die Zuordnung der Spalten und die letzte Spalte der Zieltabelle hat keine entsprechende Zuordnung.
Der Fehler fällt nur auf, wenn die Datentypen der Spalten unterschiedlich sind. Sofern die Datentypen gleich oder kompatibel sind, werden die Daten in die falschen Zielspalten importiert. Wie kann diese Fehlerquelle ausgeschaltet werde
n?

Lösung:
SQL Server 7.0 bietet nur die Möglichkeit, die Zuordnung der Felder im DTS Import-/Export-Assistent manuell zu korrigieren. Dabei muss jede Spalte einzeln zugeordnet werden.
Mit dem SQL Server 2000 ist das Problem gelöst. Hier erfolgt die Zuordnung anhand der Spaltennamen und nicht nach der Reihenfolge.

/* übernommen aus der Original sqlfaq.de */