使用變數和參數 (Database Engine)

Transact-SQL 有許多方式可傳遞 Transact-SQL 陳述式之間的資料。這些功能包括下列項目:

  • Transact-SQL 本機變數。

    Transact-SQL 變數是 Transact-SQL 批次中的物件和可以保存資料值的指令碼。變數一經宣告或定義,批次中的某個陳述式即可設定變數的值,然後批次中的其他陳述式可從這個變數取得值。例如:

    USE AdventureWorks2008R2;
    GO
    DECLARE @EmpIDVar int;
    SET @EmpIDVar = 1234;
    SELECT *
    FROM HumanRresources.Employee
    WHERE BusinessEntityID = @EmpIDVar;
    

    [!附註]

    可在批次中宣告的本機變數數目上限是 10,000。

  • Transact-SQL 參數。

    參數是一個物件,用來在預存程序與執行預存程序的批次或指令碼之間傳遞資料。參數可以是輸入參數也可以是輸出參數。例如:

    USE AdventureWorks2008R2;
    GO
    CREATE PROCEDURE ParmSample @EmpIDParm int AS
    SELECT BusinessEntityID, JobTitle
    FROM HumanResources.Employee
    WHERE BusinessEntityID = @EmpIDParm ;
    GO
    
    EXEC ParmSample @EmpIDParm = 109 ;
    GO
    

應用程式利用應用程式變數和參數標記來處理 Transact-SQL 陳述式的資料。

  • 應用程式變數

    應用程式設計語言如 C、C++、Basic 和 Java,都有自己的變數來保存資料。使用資料庫 API 的應用程式必須先將 Transact-SQL 陳述式傳回的資料移到應用程式變數中,然後才可以使用該資料。這通常是使用一種稱為繫結的處理序來完成。應用程式使用 API 函數來繫結結果集資料行與程式變數。提取資料列之後,API 提供者或驅動程式會將資料行的資料移到繫結的程式變數中。

  • 參數標記

    ADO、OLE DB 和 ODBC 式的資料庫 API 都支援參數標記。參數標記是一個問號 (?),位於 Transact-SQL 陳述式的輸入運算式中。此參數標記會繫結到應用程式變數。讓應用程式變數的資料作為 Transact-SQL 陳述式的輸入使用。參數標記也讓預存程序輸出參數和傳回碼繫結到應用程式變數。程序執行時,輸出資料就會傳回到繫結變數。DB-Library API 也支援將預存程序參數和傳回碼繫結到程式變數。