MSSQL — Microsoft SQL Server
Der MSSQL-Konnektor ist als Vorabversion eingestuft. Lesen ist funktionsfähig, Schreiben wird nicht unterstützt. Vor einem produktiven Einsatz bitte WYSA kontaktieren.
Der MSSQL-Konnektor ermöglicht das Lesen von Daten aus Microsoft SQL Server-Datenbanken (OnPremise und Azure SQL) und deren Übertragung in andere Systeme.
| Eigenschaft | Wert |
|---|---|
| Lesen | ⚠️ Preview |
| Schreiben | — nicht unterstützt |
| Job-Filter | ✅ wird als WHERE-Klausel übernommen |
| Status | Preview |
Wie die übrigen drei SQL-Konnektoren wertet MSSQL den Filter des Jobs aus und erzeugt gültiges Paging für sein Datenbanksystem.
Ein MSSQL-System als TargetConnection führt zur Laufzeit zu einem Abbruch. Der
Konnektor ist ausschließlich als Quellsystem einsetzbar. Auch das Löschen von Datensätzen
ist nicht implementiert.
Verbindungsparameter
{
"connectionstring": "<ADO.NET Connection String>"
}
Beispiel (SQL Server Authentication):
Server=<server>;Database=<db>;User Id=<user>;Password=<password>;TrustServerCertificate=True;
Beispiel (Windows Authentication / Integrated Security):
Server=<server>;Database=<db>;Integrated Security=True;TrustServerCertificate=True;
Optionale Parameter
| Parameter | Standardwert | Beschreibung |
|---|---|---|
commandTimeOut | 30 | Zeitlimit für einzelne SQL-Befehle in Sekunden. Bei großen Tabellen oder langsamen Abfragen zu erhöhen. |
maxPageSize | 5000 | Anzahl Datensätze je Seite. Steuert TOP bzw. OFFSET/FETCH NEXT der erzeugten Abfrage. |
language | de-DE | Kultur, in der gelesene Zahlen- und Datumswerte formatiert werden |
keyVaultUrl | (leer) | Key-Vault-Secret-URL; ersetzt sämtliche übrigen Parameter |
Tabellen- und Feldnamen
| Einstellung | Wert |
|---|---|
| SourceTable | Tabellenname, ggf. mit Schema-Präfix (z. B. Customers, dbo.Orders) |
| SourceField | Spaltenname. Spaltennamen mit Leerzeichen werden automatisch in eckige Klammern gesetzt. |
Der Wert aus SourceTable wird unverändert hinter FROM eingesetzt.
Änderungserkennung (Watermark)
Die Erkennung basiert auf einer Zeitstempel-Spalte in der SQL-Tabelle. Diese Spalte muss beim Einfügen oder Ändern eines Datensatzes automatisch aktualisiert werden.
| Eigenschaft | Wert |
|---|---|
| WatermarkType | date oder datetime |
| WatermarkField | Name der Zeitstempel-Spalte (z. B. ModifiedAt, UpdatedDate) |
Die Spalte aus WatermarkField wird zusätzlich zu den gemappten Feldern abgefragt und für
die Sortierung (ORDER BY … ASC) verwendet.
Spalten vom Typ datetime, datetime2, smalldatetime oder date sind vorgesehen und
werden als ISO-Zeitstempel weitergereicht. Eine Spalte anderen Typs — etwa rowversion,
timestamp oder bigint — führt nicht mehr zu einem Abbruch, wird aber unverändert über
ToString() weitergegeben; die Sortierung (ORDER BY … ASC) erfolgt weiterhin nach dem
Spaltentyp der Datenbank, nicht nach dem Textwert.
Filter — die WHERE-Klausel kommt aus dem Job
Die DataBridge baut keine Bedingung aus WatermarkField und Watermark zusammen. Der
Inhalt des Feldes Filter am Job wird — nach Ersetzung des Platzhalters %watermark% —
wörtlich hinter WHERE eingesetzt.
Daraus folgt:
- Ohne Eintrag im Feld
Filterentsteht keineWHERE-Klausel. Der Job liest bei jedem Lauf die vollständige Tabelle. - Der Ausdruck muss gültiges T-SQL sein. Ein Syntaxfehler im Filter führt zu einer fehlgeschlagenen Abfrage.
- Es findet keine Parametrisierung statt. Der Filtertext wird als Zeichenkette in die
Abfrage eingesetzt; der Zugriff auf die
jobs-Tabelle ist entsprechend zu beschränken.
Ein typischer Filter für eine MSSQL-Quelle:
{{ModifiedAt > '%watermark%'}}
Die Klammerung {{ … }} sorgt dafür, dass der Block bei leerer Watermark vollständig
entfällt — der Erstlauf liest dann den gesamten Bestand. Die vollständigen Regeln stehen
unter Jobs → Filter-Syntax.
Datentypen — gelesene Werte
Da Schreiben nicht unterstützt wird, ist beim MSSQL-Konnektor allein der Lesepfad relevant. Der Typ ergibt sich aus dem ADO.NET-Spaltentyp; der so ermittelte Typname wird zusammen mit dem formatierten Wert an den Zielkonnektor weitergereicht und dort für die Auswahl der Umwandlung verwendet.
| ADO.NET-Spaltentyp | Weitergegebener Typ | Formatierung des Wertes |
|---|---|---|
Int32 | int32 | Wird als Ganzzahl gelesen und in der Kultur aus language ausgegeben |
Decimal | decimal | Wird als Dezimalzahl gelesen und in der Kultur aus language ausgegeben |
Double | double | Wie Decimal — Umwandlung über einen Dezimalwert |
DateTime | datetime | Format u, also yyyy-MM-dd HH:mm:ssZ |
| alle übrigen | Name des .NET-Typs (z. B. string, boolean, guid) | Unveränderte Textdarstellung |
Zahlen werden in der Kultur der Quellverbindung formatiert. Steht dort der Vorgabewert
de-DE, wird ein Komma als Dezimaltrennzeichen ausgegeben. Zielkonnektoren, die einen
Textwert zwingend als en-US lesen — etwa die String-zu-Decimal-Umwandlung ab v2.1 —
interpretieren das falsch. In gemischten Szenarien ist language an der Quellverbindung
entsprechend zu setzen.
Welche Quelltypen ein Zielsystem akzeptiert, steht auf der jeweiligen Zielkonnektor-Seite: D365BC, D365CE, D365NAV.