共用方式為


將查詢參數對應至 Execute SQL Task 中的變數

本主題描述如何在執行 SQL 工作中使用參數化 SQL 語句,並在 SQL 語句中建立變數和參數之間的對應。

若要深入瞭解執行 SQL 工作、參數標記,以及搭配不同連接類型使用的參數名稱,請參閱執行 SQL 工作在執行 SQL 工作中的參數和傳回碼

將查詢參數對應至變數

  1. 在 SQL Server Data Tools (SSDT) 中,開啟您想要處理的 Integration Services 套件。

  2. 在 [方案總管] 中,按兩下封裝將其開啟。

  3. 按一下 控制流程 標籤。

  4. 如果封裝尚未包含「執行 SQL」工作,請將一個新增至封裝的控制流程。 如需詳細資訊,請參閱 在控制流程中新增或刪除工作或容器
    .

  5. 按兩下 [執行 SQL] 工作。

  6. 以下列其中一種方式提供參數化的 SQL 命令:

    • 使用直接輸入,並在 SQLStatement 屬性中輸入 SQL 命令。

    • 使用直接輸入,按兩下 [建置查詢],然後使用查詢產生器提供的圖形化工具建立 SQL 命令。

    • 使用檔案連接,然後參考包含 SQL 命令的檔案。

    • 使用變數,然後參考包含 SQL 命令的變數。

    您在參數化 SQL 語句中使用的參數標記取決於執行 SQL 工作所使用的連接類型。

    連接類型 參數標記
    ADO ?
    ADO.NET 和 SQLMOBILE @<參數名稱>
    ODBC ?
    EXCEL 和 OLE DB ?

    下表列出依連接管理員類型的SELECT命令範例。 參數會提供 WHERE 子句中的篩選值。 這些範例會使用 SELECT 傳回 AdventureWorks2012中 Product 數據表的產品,其 ProductID 大於和小於兩個參數所指定的值。

    連接類型 SELECT 語法
    EXCEL、ODBC 和OLEDB SELECT* FROM Production.Product WHERE ProductId > ? AND ProductID < ?
    ADO SELECT* FROM Production.Product WHERE ProductId > ? AND ProductID < ?
    ADO.NET SELECT* FROM Production.Product WHERE ProductId > @parmMinProductID AND ProductID < @parmMaxProductID

    如需搭配預存程式使用參數的範例,請參閱 執行 SQL 工作中的參數和傳回碼

  7. 按一下 參數對應

  8. 若要新增參數對應,請按兩下 [ 新增]。

  9. 在 [ 參數名稱 ] 方塊中提供名稱。

    您使用的參數名稱取決於執行 SQL 工作所使用的連接類型。

    連接類型 參數名稱
    ADO Param1、Param2、...
    ADO.NET 和 SQLMOBILE @<參數名稱>
    ODBC 1, 2, 3, ...
    EXCEL 和 OLE DB 0, 1, 2, 3, ...
  10. 從 [ 變數名稱] 清單中,選取變數。 如需詳細資訊,請參閱 在封裝中新增、刪除、變更 User-Defined 變數的範圍

  11. Direction 清單中,指定參數是否為輸入、輸出或傳回值。

  12. 在 [ 數據類型] 清單中,設定 參數的數據類型。

    這很重要

    參數的數據類型必須與變數的數據類型相容。

  13. 針對 SQL 語句中的每個參數重複步驟 8 到 11。

    這很重要

    參數對應的順序必須與參數出現在 SQL 語句中的順序相同。

  14. 按一下 [確定]

另請參閱

執行 SQL 工作
執行 SQL 工作中的參數和傳回碼
Integration Services (SSIS) 變數