Ausführen gespeicherter Prozeduren in SQL Server mithilfe des SQL-Adapters

Die gespeicherten Transact-SQL- und CLR-Prozeduren in SQL Server werden als Vorgänge in Microsoft BizTalk-Adapter für SQL Server unter dem Knoten Prozeduren angezeigt, während Sie das Add-In "Adapterdienst nutzen" oder "Adapterdienstverweis hinzufügen" verwenden. Die vom SQL-Adapter verfügbar gemachten Vorgangsnamen entsprechen dem Namen der gespeicherten Prozedur in SQL Server. Alle Parameter in der gespeicherten Prozedur werden im entsprechenden Vorgang verfügbar gemacht. Der OUT-Parameter enthält den Rückgabewert der gespeicherten Prozedur. Das Resultset der gespeicherten Prozedur ist ein Array von DataSet. Weitere Informationen zu DataSet finden Sie unter https://go.microsoft.com/fwlink/?LinkId=196853. Die Schemainformationen des Zielobjekts werden als Teil der Antwortnachricht zur Laufzeit abgerufen.

Wenn Sie jedoch die Schemainformationen des Zielobjekts zur Entwurfszeit abrufen möchten, müssen Sie Schemas für die Prozeduren unter dem Knoten Stark typisierte Prozeduren im Add-In Adapterdienst nutzen oder Adapterdienstverweis hinzufügen generieren. Beachten Sie, dass dieselben gespeicherten Prozeduren unter den Knoten Prozeduren und stark typisierte Prozeduren angezeigt werden. Der Rückgabewert der gespeicherten Prozedur ist stark typisiert und nicht nur ein Array von DataSet. Da die Schemainformationen zur Entwurfszeit verfügbar sind, können Sie sie verwenden, um das Schema der gespeicherten Prozedur einem anderen Schema für einen anderen Vorgang zuzuordnen. Beispielsweise können Sie das für eine stark typisierte Prozedur generierte Schema dem schema zuordnen, das für den Einfügevorgang in einer Datenbanktabelle generiert wurde.

Hinweis

Sie können die Schemainformationen nicht zur Entwurfszeit für eine stark typisierte gespeicherte Prozedur anzeigen, wenn:

  • Sie verwenden einen Cursor, der ein Rückgabewert einer anderen gespeicherten Prozedur ist, als Eingabeparameter für die stark typisierte gespeicherte Prozedur.
    • Es handelt sich um eine gespeicherte CLR-Prozedur, die einige Vorgänge für eine Tabelle ausführt.

Unterstützung für gespeicherte Prozeduren mit der FOR XML-Klausel

Mit dem SQL-Adapter können Sie auch gespeicherte Prozeduren ausführen, die über eine SELECT-Anweisung mit einer FOR XML-Klausel verfügen. Eine FOR XML-Klausel wird in einer SELECT-Anweisung verwendet, um die Ergebnisse als XML anstelle eines Rowsets zurückzugeben. Weitere Informationen zur FOR XML-Klausel finden Sie unter https://go.microsoft.com/fwlink/?LinkId=131402.

Hinweis

Der mit BizTalk Server verfügbare "native" SQL-Adapter unterstützt nur die gespeicherten Prozeduren, die XML zurückgeben, d. h. die FOR XML-Klausel in der SELECT-Anweisung haben. Mit der Unterstützung für gespeicherte Prozeduren mit der FOR XML-Klausel können Sie diese gespeicherten Prozeduren mithilfe des WCF-basierten SQL-Adapters ausführen, ohne änderungen an der Definition der gespeicherten Prozedur vorzunehmen.

Unterstützung für gespeicherte Prozeduren mit temporären Tabellen

Mit dem SQL-Adapter können Sie Metadaten für gespeicherte Prozeduren generieren, die temporäre Tabellen in ihren Definitionen enthalten. Für solche gespeicherten Prozeduren müssen Sie jedoch Metadaten generieren, indem Sie die gespeicherten Prozeduren nur über den Knoten Prozeduren auswählen, während Sie das Add-In Adapter Service Reference Plug-In oder Using Adapter Service Add-In verwenden. Der Adapter unterstützt das Generieren von Metadaten für solche gespeicherten Prozeduren unter dem Knoten Stark typisierte Prozeduren nicht.

Unterstützung für Resultsets, die Spalten ohne Namen oder mit gleichen Namen enthalten

In der folgenden Tabelle wird aufgeführt, wie der SQL-Adapter Spalten ohne Namen und dieselben Namen in den Resultsets für gespeicherte Prozeduren und stark typisierte gespeicherte Prozeduren verarbeitet.

Resultset enthält... Gespeicherte Prozedur Strongly-Typed gespeicherte Prozedur
Spalten ohne Namen Der SQL-Adapter generiert einen Namen für die Spalte auf folgende Weise: Eine eindeutige ID (GUID) wird für die Spalte ohne "-" (Bindestrich) generiert, und dann wird der GUID-Zeichenfolge "C" vorangestellt, da die generierte GUID möglicherweise mit einer Ziffer beginnt, ein XML-Tagname jedoch nicht. Der SQL-Adapter generiert den folgenden Namen für die Spalte: "UnNamedColumn[column_index]", wobei column_index mit "0" beginnt.
Spalten mit demselben Namen Die Namen der anderen Spalten als der ersten werden mit "" (Unterstrich) gefolgt von einer zufälligen GUID ohne "-" (Bindestrich) angefügt. Beispiel: "\[GUID]". Der SQL-Adapter unterstützt keine Spalten mit demselben Namen in den Resultsets und löst eine Ausnahme aus. Wichtig: Sie müssen sicherstellen, dass die Spaltennamen in einem Resultset eindeutige Namen aufweisen.

Hinweis

Im Allgemeinen wird empfohlen, dass alle Spalten in einem Resultset für gespeicherte Prozeduren und stark typisierte gespeicherte Prozeduren benannt sein müssen und eindeutige Namen haben müssen.

Weitere Informationen:

Weitere Informationen

Herstellen einer Verbindung mit einem SAP-System mithilfe des Adapters