使用變數和參數 (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 也支援將預存程序參數和傳回碼繫結到程式變數。