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 */

Clienttools für MSDE

Frage:
Die MSDE stellt keine Administrationstools zur Verfügung. Welche Möglichkeiten zur Administration einer MSDE gibt es?

Lösung:
Im Lieferumfang befindet sich das Kommandozeilentools osql, mit dem SQL-Statements an der MSDE ausgeführt werden können.

Eine Alternative dazu bietet Access im ADP-Format. Dort ist es möglich, Datenbankobjekte anzulegen, zu ändern und zu löschen.
Auch die Berechtigungen der einzelnen Objekte können über Access konfiguriert werden.

Eine weitere Alternative ist der Kauf einer SQL Server-Client-Lizenz. Darin ist der Enterprise Manager, der Query Analyzer und der MS Profiler enthalten.

/* ü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 */

DTS-Paket auf anderen SQL Server exportieren

Frage:
Wie kann ein erstelltes DTS-Paket auf einen anderen SQL Server exportiert werden?

Lösung:
Da gibt es drei Möglichkeiten:

1) Export per DTS Import-/Export-Assistent
Der DTS Import-/Export-Assistent wird im Enterprise Manager über den Menüpunkt Extras -> Assistenten -> Data Transformation Services -> DTS Import-/Export-Assistent gestartet.
Als Quell- und Zieldatenbank muss jeweils die Systemdatenbank msdb und als Ãœbergabeart die Option Verwendung einer Abfrage für eine Datenübertragung gewählt werden. Dort den Befehl Select * From SysDtsPackages eintragen und mit Weiter geht’s zur Zieleingabe, in der der Default-Wert Ergebnisse auf msdb.dbo.sysdtspackages geändert werden muss. Wird diese Tabelle in der Auswahl nicht angezeigt, fehlen die entsprechenden Systemrechte.
Zum Schluss muss das Paket nur noch ausgeführt werden.

2) Speichern als Datei
Im DTS-Designer kann das Paket über Speichern unter -> Speicherort als strukturierte Speicherdatei gespeichert werden.
Diese Datei lässt sich auf dem Zielserver über das Kontextmenü Paket öffnen des Ordners Data Transformation Services öffnen und von dort in der msdb-Datenbank des Zielservers speichern
.

3) Speichern unter
Im Bearbeiten-Modus kann das DTS-Paket über Speichern unter -> Speicherort auf einem anderen SQL Server gespeichert werden – wenn dieser denn von den Berechtigungen her verfügbar ist.

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

Benutzerkonto sa

Frage:
Mit der Installation des SQL-Servers wird automatisch die Anmeldung sa erzeugt. Wozu ist diese Anmeldung gut?

Lösung:
sa steht für system administrator und ist – wie der Name schon sagt – das Administratorkonto vom SQL Server.
Dieses Konto verfügt über alle Rechte am SQL Server.

sa sollte nur für die Installation und die Wiederherstellung eines SQL Servers oder in Notfällen genutzt werden. Für tägliche Administrationsaufgaben und insbesondere zur Datenbank-Entwicklung sollten eigene Benutzerkonten – mit den Anforderungen entsprechend ausgestatteten Berechtigungen – genutzt werden.

SQL Server 7.0 geht sehr fahrlässig mit dem sa-Konto um, denn bei der Installation wird das Konto ohne Kennwort angelegt. SQL Server 2000 erinnert zwar an ein Kennwort, zwingend ist es aber nicht. Ein system administrator ohne Kennwort ist wie eine Haustür ohne Schloss und lädt ungebetene Gäste geradezu ein. Der Virus Slammer ist ein solch ungebetener Gast.

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

Quellcode verschlüsseln

Frage:
Der Quellcode von Sichten und Gespeicherten Prozeduren ist über den Enterprise Manager für jeden Benutzer mit ausreichend Berechtigungen lesbar. Zumindest der Administrator kann den Quellcode lesen. Wie kann der Quellcode verschlüsselt werden?

Lösung:
Sichten und Gespeicherte Prozedurens können beim CREATE mit dem Zusatz with encryption verschlüsselt werden.
Aber Vorsicht! Der Quellcode ist danach für jeden verschlüsselt – auch für den Besitzer dieser Objekte.
Die Verschlüsselung der Daten kann nicht mehr rückgängig gemacht werden.

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