Einfügen, Aktualisieren, Löschen und Auswählen von Vorgängen für Tabellen und Ansichten mit dem SQL-Adapter
Der Microsoft BizTalk-Adapter für SQL Server stellt eine Reihe von Standardvorgängen für jede Tabelle und Ansicht in der SQL Server-Datenbank bereit. Mithilfe dieser Vorgänge können Sie einfache INSERT-, UPDATE-, SELECT- und DELETE-Anweisungen ausführen, die durch eine WHERE-Klausel für die Zieltabelle oder -sicht qualifiziert sind. Diese Vorgänge werden auch als DML-Vorgänge (Data Manipulation Language) bezeichnet.
Die folgende Tabelle zeigt die DML-Vorgänge, die der SQL-Adapter unterstützt:
Vorgang | BESCHREIBUNG |
---|---|
Einfügen | Führt einen Einfügevorgang für die Zieltabelle oder -sicht aus. – Der Insert-Vorgang verwendet ein Array von Datensätzen als Eingabe. Jeder Datensatz wird stark der Zieltabelle zugeordnet und der Zeile zugeordnet, die in die Tabelle eingefügt wird. – Sie können Werte in Identitätsspalten einfügen, sofern der Wert der AllowIdentityInsert-Bindungseigenschaft auf TRUE festgelegt ist. Weitere Informationen zur AllowIdentityInsert-Bindungseigenschaft finden Sie unter Informationen zum BizTalk-Adapter für SQL Server Adapterbindungseigenschaften. – Der Rückgabewert des Insert-Vorgangs ist ein Array des Datentyps Long. Dieses Array speichert die Identitätswerte der eingefügten Zeilen, sofern vorhanden. Wenn keine Identitätsspalte in einer Tabelle vorhanden ist, ist der Rückgabewert NULL. Einige Werte in der Meldung "Vorgang einfügen" werden vom SQL-Adapter wie folgt behandelt: – Werte, die für berechnete Spalten und Zeitstempelspalten angegeben sind, werden ignoriert. - Wenn der Knoten für eine Identitätsspalte NULL ist, wird er ignoriert. Für alle anderen Werte in der Meldung des Vorgangs Einfügen: - Wenn ein Wert für eine Spalte angegeben wird, wird dieser Wert in der INSERT-Anweisung verwendet. – Wenn der Knoten für eine bestimmte Spalte NULL ist, wird NULL in der INSERT-Anweisung verwendet. Hinweis: Wenn für einen bestimmten Datensatz keine Werte vorhanden sind, die in der INSERT-Anweisung verwendet werden können (das heißt, entweder wurden keine Werte für eine Spalte angegeben oder alle Spaltenwerte wurden ignoriert), führt der Adapter die folgende SQL-Anweisung aus: insert into <table_name> default values |
Select | Führt eine SELECT-Anweisung für die Zieltabelle oder -sicht basierend auf einem Array von Datensätzen (Spalten) und einer Abfragezeichenfolge aus, die eine WHERE-Klausel angibt. – Für die Liste der Spalten in der SELECT-Anweisung muss ein Wert angegeben werden. Wenn alle Spalten in einer Tabelle oder Sicht abgerufen werden müssen, muss * in der SELECT-Anweisung angegeben werden. Wenn bestimmte Spalten abgerufen werden müssen, müssen die Spaltennamen durch Kommas getrennt und in der gleichen Reihenfolge angegeben werden, wie sie in der Tabelle oder Sicht definiert sind. – Die WHERE-Klausel muss in der SELECT-Anweisung enthalten sein. Wenn Sie jedoch keinen Wert in der WHERE-Klausel angeben möchten, können Sie das Query Element entweder löschen oder leer lassen.– Mit dem Select-Vorgang können Sie auch einen Updatevorgang ausführen. In diesem Fall wird die UPDATE-Anweisung im Query Element der SELECT-Anweisung platziert.Der Rückgabewert des Select-Vorgangs ist ein stark typisiertes Resultset, das die angegebenen Spalten und Zeilen aus der Zieltabelle oder -sicht enthält. |
Aktualisieren | Führt einen Updatevorgang für die Zieltabelle oder -ansicht aus. – Der Updatevorgang verwendet ein Array von Datensatzpaaren als Eingabe. Jedes Datensatzpaar ist eine Sammlung von zwei Datensätzen, und jeder Datensatz ist stark in die Zieltabelle eingegeben. – Der erste Datensatz entspricht neuen Werten, die aktualisiert werden müssen, d. h. er entspricht der SET-Klausel der UPDATE-Anweisung. - Der zweite Datensatz entspricht den alten Werten der Zeilen, d. h. er entspricht der WHERE-Klausel der UPDATE-Anweisung. Hinweis: Wenn für ein bestimmtes Datensatzpaar keine Werte in der SET-Klausel verwendet werden können, wird für dieses Datensatzpaar keine UPDATE-Anweisung ausgeführt. – Sie können Werte in Identitätsspalten aktualisieren, sofern der Wert der AllowIdentityInsert-Bindungseigenschaft auf TRUE festgelegt ist. Weitere Informationen zur AllowIdentityInsert-Bindungseigenschaft finden Sie unter Informationen zum BizTalk-Adapter für SQL Server Adapterbindungseigenschaften. - Der Rückgabewert des Vorgangs Update ist vom Int32-Datentyp und gibt die Anzahl der aktualisierten Zeilen an. Einige Werte in der Meldung Updatevorgang werden vom SQL-Adapter wie folgt behandelt: – Werte, die für berechnete Spalten und Zeitstempelspalten in der SET-Klausel der Nachricht angegeben sind, werden ignoriert. - Wenn ein benutzerdefinierter Typ (UdT) nicht bytegeordnet ist, wird der für die UDT-Spalte in der WHERE-Klausel angegebene Wert ignoriert. – Wenn der Knoten für eine Identitätsspalte in der SET-Klausel der Nachricht NULL ist, wird er ignoriert. – Wenn der Knoten für eine Identitäts- oder Zeitstempelspalte in der WHERE-Klausel der Nachricht NULL ist, wird er ignoriert. - Wenn der Knoten für eine Bild-, XML-, Text- oder Ntext-Spalte in der WHERE-Klausel der Nachricht nicht NULL ist, werden die für sie angegebenen Werte ignoriert, da diese Werte nicht verglichen werden können. Für alle anderen Werte in der Meldung Updatevorgang: - Wenn ein Wert für eine Spalte in der SET-Klausel der UPDATE-Anweisung angegeben wird, wird der Wert in der SET-Klausel der Anweisung ( set <column_name> = <value> ) verwendet.- Wenn der Knoten für eine bestimmte Spalte in der SET-Klausel NULL ist, wird NULL in der UPDATE-Anweisung ( set <column_name> = null ) verwendet.- Wenn ein Wert für eine Spalte in der WHERE-Klausel der UPDATE-Anweisung angegeben wird, wird der Wert in der WHERE-Klausel der Anweisung ( where <column_name> = <value> ) verwendet.- Wenn der Knoten für eine bestimmte Spalte in der WHERE-Klausel der UPDATE-Anweisung NULL ist, wird NULL in der UPDATE-Anweisung ( where <column_name> is null ) verwendet. |
Löschen | Führt einen Delete-Vorgang für die Zieltabelle oder -sicht basierend auf einem stark typisierten Array von Datensätzen (Liste der Spaltennamen) der Zieltabelle und einer Filterzeichenfolge aus, die eine WHERE-Klausel angibt. Der Rückgabewert des Delete-Vorgangs hat den Int32-Datentyp und gibt die Anzahl der gelöschten Zeilen an. Einige Werte in der Meldung "Vorgang löschen" werden vom SQL-Adapter wie folgt behandelt: - Wenn der Knoten für eine Bild-, XML-, Text- oder Ntext-Spalte in der WHERE-Klausel der Nachricht nicht NULL ist, werden die für sie angegebenen Werte ignoriert, da diese Werte nicht verglichen werden können. – Wenn der Knoten für eine Identitäts- oder Zeitstempelspalte NULL ist, wird er ignoriert. - Wenn ein UDT nicht bytegeordnet ist, wird der für die UDT-Spalte in der WHERE-Klausel angegebene Wert ignoriert. Für alle anderen Werte in der Löschvorgangsmeldung: - Wenn ein Wert für eine Spalte angegeben wird, wird der Wert in der WHERE-Klausel der DELETE-Anweisung ( where <column_name> = <value> ) verwendet.- Wenn der Knoten für eine bestimmte Spalte NULL ist, wird NULL in der DELETE-Anweisung ( where <column_name> is null ) verwendet. Hinweis: Wenn für einen bestimmten Datensatz keine Werte vorhanden sind, die in der DELETE-Anweisung verwendet werden können (d. h. entweder wurden keine Werte für eine Spalte angegeben oder alle vorhandenen Spaltenwerte ignoriert), führt der Adapter keine DELETE-Anweisung aus. |
Weitere Informationen:
Diese Vorgänge mit BizTalk Server ausführen, finden Sie unter Einfügen, Aktualisieren, Löschen oder Auswählen von Vorgängen mit BizTalk Server mit dem SQL-Adapter.
Nachrichtenstrukturen und SOAP-Aktion zum Ausführen von DML-Vorgängen finden Sie unter Nachrichtenschemas für Einfügen, Aktualisieren, Löschen und Auswählen von Vorgängen für Tabellen und Ansichten.
Weitere Informationen
Herstellen einer Verbindung mit einem SAP-System mithilfe des Adapters