共用方式為


使用 SQL 配接器在 SQL Server 中執行預存程式

SQL Server中的 Transact-SQL 和 CLR 預存程式會在使用取用配接器服務增益集或新增配接器服務參考外掛程式時,在 Microsoft BizTalk Adapter for SQL Server 中顯示為作業。 SQL 配接器所公開的作業名稱與SQL Server中預存程式的名稱相同。 預存程式中的所有參數都會在對應的作業中公開。 OUT 參數包含預存程式的傳回值。 預存程式的結果集是 DataSet 的陣列。 如需 DataSet 的詳細資訊,請參閱 https://go.microsoft.com/fwlink/?LinkId=196853 。 目標物件的架構資訊會在執行時間取得為回應訊息的一部分。

不過,如果您想要在設計階段取得目標物件的架構資訊,您必須在取用配接器服務增益集或新增配接器服務參考外掛程式的 [強型別程式 ] 節點下,為程式產生架構。 請注意,相同的預存程式會顯示在[程式和強型別程式] 節點之下。 預存程式的傳回值是強型別的,而不只是 DataSet 的陣列。 當架構資訊在設計階段可用時,您可以使用它,將預存程式的架構對應至另一個架構,以進行不同的作業。 例如,您可以將針對強型別程式產生的架構對應至資料庫資料表上插入作業所產生的架構。

注意

如果下列情況,您將無法在設計階段檢視強型別預存程式的架構資訊:

  • 您使用的是資料指標,這是另一個預存程式的傳回值,做為強型別預存程式的輸入參數。
    • 它是 CLR 預存程式,會在資料表上執行某些作業。

使用 FOR XML 子句支援預存程式

SQL 配接器也可讓您執行具有具有 FOR XML 子句之 SELECT 語句的預存程式。 FOR XML 子句用於 SELECT 語句中,以 XML 而非資料列集的形式傳回結果。 如需 FOR XML 子句的詳細資訊,請參閱 https://go.microsoft.com/fwlink/?LinkId=131402

注意

BizTalk Server提供的「原生」SQL 配接器僅支援傳回 XML 的預存程式,也就是 SELECT 語句中有 FOR XML 子句。 使用 FOR XML 子句支援預存程式時,您可以使用 WCF 型 SQL 配接器來執行這些預存程式,而不需對預存程式定義進行任何變更。

支援具有臨時表的預存程式

SQL 配接器可讓您為其定義中包含臨時表的預存程式產生中繼資料。 不過,對於這類預存程式,您必須只從 [ 程式 ] 節點選取預存程式來產生中繼資料,同時使用 [新增配接器服務參考外掛程式] 或 [取用配接器服務增益集]。 配接器不支援從 [強型別程式 ] 節點底下產生這類預存程式的中繼資料。

支援包含沒有名稱或具有相同名稱之資料行的結果集

下表列出 SQL 配接器如何處理預存程式和強型別預存程式之結果集中沒有名稱和相同名稱的資料行。

結果集包含... 預存程序 Strongly-Typed 預存程式
沒有名稱的資料行 SQL 配接器會以下列方式產生資料行的名稱:產生唯一識別碼 (GUID) 會針對沒有 「-」 的資料行產生 (連字號) ,然後 GUID 字串前面會加上 「C」,因為產生的 GUID 可能會以數位開頭,但 XML 標記名稱不能。 SQL 配接器會產生下列資料行的名稱:「UnNamedColumn[column_index]」,其中column_index從 '0' 開始。
具有相同名稱的資料行 第一個以外的資料行名稱會附加 「」 (底線) 後面接著不含 「-」 的隨機 GUID, (連字號) 。例如:「\[GUID]」。 SQL 配接器不支援結果集中具有相同名稱的資料行,並擲回例外狀況。 重要: 您必須確定結果集中的資料行名稱具有唯一的名稱。

注意

一般而言,建議將預存程式和強型別預存程式的結果集中的所有資料行命名為 ,且具有唯一的名稱。

如需下列詳細資訊︰

另請參閱

使用配接器連線到 SAP 系統