SQL Server Adapter - Import, Export, Update und Delete
Der MS Sql Server Adapter wird zum importieren (Insert), exportieren (Select) bzw. aktualisieren (Update) von Tabellen eines Microsoft SQL Datenbank Servers verwendet. Der Adapter kann sowohl auf der READ (Export) als auch auf der WRITE (Import) Seite vorkommen. Unterstützt werden die SQLServer Versionen ab SQL Server 7.0 bis SQL Server 2022. Weiterhin werden vom SQL Server Adapter auch Microsoft Azure „Cloud“ SQL Datenbanken unterstützt. Wie Azure Datenbanken angebunden werden können wird weiter unten genauer erklärt, siehe Azure SQL Konfiguration.
Reiter Allgemein
Anmeldeinformationen
Soll eine Instanz angegeben bzw. ein anderer Port verwendet werden, muss dies im Format
Servername/Instanzname bzw. Servername/Instanzname,Port
eingetragen werden. Alternative Konfigurationen zur Verwendung von Microsoft Azure SQL Datenbanken finden Sie weiter unten.
Datenbank: Angabe des Namens der SQL Server Datenbank auf die zugegriffen werden soll. Im Kombinationsfeld werden automatisch alle verfügbaren Datenbanken aufgelistet die auf dem angegebenen SQL Server verfügbar sind.
Authentifizierung: entweder Windows (trusted connection) oder SQL Server. Hiermit bestimmen Sie wie der FlowHeater sich am SQL Server anmelden soll. Dabei bedeuten:
- trusted connection = der FlowHeater meldet sich mit dem aktuell angemeldeten Benutzer an der SQL Server Datenbank an.
- SQL Server = der FlowHeater meldet sich mit einem SQL Benutzer und Passwort an der SQL Server Datenbank an.
User / Passwort: wurde bei der Authentifizierung "SQL Server" ausgewählt, müssen Sie hier den SQL Benutzer sowie das zugehörige Passwort angeben. Wichtig: Das Passwort wird nur gespeichert, wenn das Häkchen bei "Save Passwort" gesetzt wurde. Soll das Passwort gespeichert werden, wird dies verschlüsselt in der Definitionsdatei hinterlegt.
Verwende SSL verschlüsselte Verbindung: Wenn Sie diese Option verwenden, wird die Kommunikation mit dem SQL Server über SSL bzw. TLS verschlüsselt. Diese Einstellung wird unter anderem für Microsoft Azure SQL Datenbanken benötigt, mehr dazu weiter unten.
SSL Server Zertifikat nicht prüfen: Wenn diese Option aktiviert wird, wird das verwendete SSL Zertifikat nicht auf Gültigkeit geprüft. Das sollte nur bei lokalen bekannten SQL Servern gemacht werden, wo keine offiziellen Server Zertifikate verwendet werden. Bei Microsoft Azure SQL Datenbanken sollte diese Option niemals aktiviert werden!
Allgemein
Daten anfügen (Insert): Ist diese Option aktiv, werden Insert SQL Statements generiert.
Vorhandene Datensätze ignorieren: Hiermit werden beim Import, bereits vorhandene Datensätze in der Tabelle ignoriert!
Tabelle vor dem Import leeren: Hiermit teilen Sie dem SqlServer Adapter mit, den Inhalt der Tabelle vor dem ausführen der Definition zu leeren bzw. zu löschen.
Daten aktualisieren (Update): Ist diese Option aktiv werden Update SQL Statements generiert. Hinweis: Sind die Optionen Insert und Update beide aktiv, prüft der SqlServer Adapter anhand des PrimaryKeys ob für den jeweiligen Datensatz eine Insert oder Update SQL (Skript) Anweisung erzeugt werden muss. Wenn Sie nur Daten hinzufügen wollen, deaktivieren Sie in jedem Fall die Update Option, der Import wird dann wesentlich schneller durchgeführt!
Datensätze löschen (Delete): Hiermit wird versucht anhand der gemachten Schlüssel „Primary Key“ angaben vorhandene Datensätze zu löschen. Hinweis: Diese Option kann nicht zusammen mit den Optionen INSERT oder UPDATE verwendet werden.
Keine Daten ändern oder hinzufügen nur SQL Skript generieren: Hiermit weisen Sie den SqlServer Adapter an keine Änderungen auf der Datenbank vorzunehmen, es wird lediglich ein SQL Skript mit den Insert und/oder Update Anweisungen gespeichert. Ist diese Option aktiv müssen Sie weiter unten einen Dateinamen angeben, in dem die generierten SQL Statements gespeichert werden sollen.
SQL Skript generieren: Hiermit weisen Sie den SqlServer Adapter an die Änderungen (Insert, Update) als SQL Skript Datei unter den angegebenen Namen bzw. Pfad zu speichern.
Reiter Felder / Datentypen
SQL: Seite der Adapter gerade verwendet wird, stehen hier folgende Varianten zur Verfügung:
Auf der READ Seite: hier können Sie aus Tables, Views und Procedures auswählen.
Auf der WRITE Seite: hier steht nur Tables zur Verfügung.
Auf der READ Seite haben Sie zusätzlich die Möglichkeit Komplexe SQL Statements in der Textbox zu erfassen.
In der zweiten Combobox werden automatisch die vorhandenen Tabellen, Views bzw. Prozeduren aufgelistet, die in der angegeben Datenbank verfügbar sind.
Felder Einlesen: Mit diesem Button werden die Schemainformationen (Feldnamen, Feldgrößen, Datentyp, PrimaryKey, etc.) zu dem oben angegeben SQL Statement aus der Datenbank gelesen. Die Felder werden dann in die links stehende Feldliste eingetragen. Datentypen die vom SqlServer Adapter noch nicht unterstütz werden, werden in der Feldliste als nicht Aktiv angezeigt.
Hinweis: Die Felder können in der Feldliste in beliebiger Reihenfolge angeordnet werden. Nicht benötigte Felder können hier entweder ausgeblendet (nicht angehackt) oder einfach gelöscht werden.
Feldeigenschaften: Hiermit steuern Sie welche Felder der SqlServer Adapter als Primary Key bzw. Auto Increment Felder interpretieren soll. Die Informationen werden nur auf der Write Seite benötigt. Im Normalfall müssen Sie hier keine Änderungen vornehmen, die Informationen werden beim Einlesen der Schemainformationen bereits richtig eingetragen!
PrimaryKey Felder werden für Updates verwendet um einen evtl. bereits vorhandenen Datensatz zu identifizieren.
Auto Increment Felder werden bei Insert/Updates nicht gesetzt bzw. geändert!
Achtung: Wenn Sie hier Änderungen vornehmen, kann es sein, dass beim Update mehr als ein Datensatz geändert wird!
Reiter Erweitert
Datentyp String ein Auto Trim von sog. „Whitespace“ Zeichen durchgeführt. Dies bedeutet, das vorkommente Leerzeichen, Tabulatoren und Zeilenumbrüche automatisch am Anfang und Ende einer Zeichenfolge entfernt werden.
Leerzeichen automatisch am Anfang und Ende des Inhaltes entfernen: Wenn Sie diese Option aktivieren wird auf Felder vomVerwende TRUNCATE TABLE (= schneller) anstatt DELETE FROM: Wurde auf dem Reiter Allgemein die Option „Tabelle vor dem Import leeren aktiviert“ wird wenn Sie diese Option aktivieren ein „TRUNCATE TABLE“ anstatt eines „DELETE FROM“ (=Standard) zum Leeren des Tabelleninhaltes verwendet.
Connection Timeout: Timeout in Sekunden bis auf den Verbindungsaufbau gewartet wird. Konnte die Verbindung in dieser Zeitspanne nicht aufgebaut werden wird der Import/Export Vorgang abgerochen.
Command Timeout: Timeout in Sekunden die auf die Ausführung eines SQL Befehl gewartet wird. Mit dem Wert 0 können Sie diesen Timeout deaktivieren. In dem Fall wird dann unendlich auf die Ausführung des SQL Befehls gewartet. Diese Option ist interessant wenn Sie für den Export auf der READ Seite große Datenmengen abfragen und der SQL Server sehr lange benötigt um die Daten Aufzubereiten.
Verwende Datenbank Transaktionen: Hiermit können Sie steuern wie die Daten importiert werden sollen. In den Standardeinstellungen verwendet der SQL Server Adapter eine „große“ Transaktion um den Importvorgang abzusichern. Bei sehr großen zu importierenden Datenmengen kann es vorkommen, dass Sie über die Option „AutoCommit ausführen nach X geschriebenen Datensätzen“ das Transaktionsverhalten an Ihre Bedürfnisse anpassen.
Verwende UNICODE Zeichenfolgen: Mit dieser Option wird an Zeichenketten beim Import vor den Hochkommas das Präfix N vorangestellt. Z.B. N'import wert' anstatt nur 'import wert'.
Verarbeitung fortsetzen falls ein SQL Fehler auftritt: Hiermit können Sie den FlowHeater veranlassen, dass die Verarbeitung auch bei auftretenden SQL Datenbank Fehlern, nicht abgebrochen wird. Achtung: Diese Option nur in Ausnahmefällen verwenden, es könnten dadurch Dateninkonsistenzen entstehen!
Verbindung vorbereiten
Benutzerdefiniert SQL Anweisungen zum Initialisieren der Verbindung: Hier können Sie beliebige Benutzerdefinierte SQL Befehle platzieren, die nach einem Verbindungsaufbau zum SQL Server, zur weiteren Initialisierung der Verbindung verwendet werden.
Spezielle Adapter Einstellungen
Erlaube Auto Inkrement (IDENTITY) Inserts: Wenn Sie diese Option aktivieren wird es ermöglicht vorgegebene Werte für SQL Auto Inkrement Felder zu importieren. Achtung: In diesem Fall müssen Sie auf dem Reiter „Felder / Datentypen“ für das betroffene Feld den Haken für „Auto Inkrement“ Deaktivieren!
Transaction Isolation Level: Hier geben Sie den zu verwendenden Datenbank „Transaction Isolation Level“ an. Es werden folgende Transaction Isolation Level unterstützt: „READ COMMITTED“, „READ UNCOMMITTED“, „REPEATABLE READ“, „SNAPSHOT“, sowie „SERIALIZABLE“. Als Voreinstellung wird „READ COMMITTED“ verwendet. Hinweis: Der verwendete „Transaction Isolation Level“ muss dabei vom jeweiligen Microsoft SQL Server unterstützt werden, ggf. müssen Sie vorher die Konfiguration des SQL Servers anpassen.
Der Reiter Format
Der Reiter Format wird im allgemeinen Kapitel für Adapter genauer beschrieben.
Verbindungen mit Microsoft Azure „Cloud“ Datenbanken herstellen
Der SQL Server Adapter kann auch für den Import/Export von Microsoft Azure Datenbanken verwendet werden. Sie benötigen dazu lediglich die im Azure Portal unter ADO.NET zur angelegten Datenbank angezeigte Verbindungszeichenfolge.
z.B.: Server=tcp:flowheater.database.windows.net,1433;Initial Catalog=fhtest;Persist Security Info=False;User ID=fhuser;Password={password};MultipleActiveResultSets=False;Encrypt=True;TrustServerCertificate=False;Connection Timeout=30;
Aus dieser Zeichenfolge nehmen Sie als erstes den “Server=” Teil bis zum nächsten Strichpunkt und tragen diesen Teil unter „Servername bzw. IP“ ein. In diesem Fall wäre das "tcp:flowheater.database.windows.net,1433"
Dann müssen Sie noch die zu verwendende Azure Datenbank Angeben, das ist der Teil der hinter „Initial Catalog=“ steht, das wäre hier "fhtest".
Als nächste muss noch die Authentifizierungsmethode auf „SQL Server“ umgestellt werden und der Benutzer „User ID“ sowie das Passwort eingegeben werden. Als letztes aktivieren Sie noch, dass der SQL Server Adapter eine verschlüsselte Verbindung zur Azure SQL Datenbank verwenden soll. Hierzu genügt es, wenn Sie den Haken bei „verwende SSL verschlüsselte Verbindung“ setzen.
Hinweis: Bei Azure „Cloud“ SQL Datenbanken sollten Sie immer die verwendeten Zertifikate auf Gültigkeit prüfen lassen, daher hier die Option „SSL Server Zertifkat nicht prüfen“ auf keinen Fall aktivieren!
Wenn jetzt noch im Azure Portal Ihre IP Adresse in den Firewall Einstellungen freigeschaltet wurde können Sie mit dem SQL Server Adapter übers Internet auf Ihre Microsoft Azure „Cloud“ SQL Datenbank zugreifen.
Folgende Beispiele sind zum SqlServer Adapter bereits verfügbar
- Importieren einer CSV Textdatei in den SQL Server
- Flatfile aus SQL Server exportieren
- SQL Server Import IDENTITY (Auto Inkrement) Felder
- CSV Export auf mehrere Dateien aufteilen (splitten)