Transact-SQL 在其语句间传递数据有几种方式。其中有:
Transact-SQL 变量是 Transact-SQL 批处理和脚本中能够保存数据值的对象。声明或定义变量后,批处理中的一个 Transact-SQL 语句可以设置变量值,而该批处理中后面的语句可以从变量获得此值。例如:
DECLARE @EmpIDVar INT
SET @EmpIDVar = 1234
SELECT *
FROM Employees
WHERE EmployeeID = @EmpIDVar
参数是在存储过程和执行该存储过程的批处理或脚本之间传递数据的对象。参数可以是输入参数也可以是输出参数。例如:
CREATE PROCEDURE ParmSample @EmpIDParm INT AS
SELECT *
FROM Employees
WHERE EmployeeID = @EmpIDParm
GO
EXEC ParmSample @EmpIDParm = 1234
GO
应用程序使用应用程序变量和参数标记来处理 Transact-SQL 语句中的数据。
应用程序编程语言如 C、C++、Basic 和 Java 都有它们自己保存数据的变量。使用数据库 API 的应用程序必须在使用数据之前将由 Transact-SQL 语句返回的数据移动到应用程序变量中。该操作通常通过称为绑定的进程来完成。应用程序使用 API 函数将结果集列绑定到程序变量。提取行时,API 提供程序或驱动程序将数据从列移动到绑定程序变量。
ADO、OLE DB 和基于 ODBC 的数据库 API 支持参数标记。参数标记是放置在 Transact-SQL 语句中输入表达式位置的一个问号 (?)。该参数标记随后可绑定到应用程序变量。从而使应用程序变量的数据能够用作 Transact-SQL 语句的输入。参数标记也允许存储过程输出参数和返回代码绑定到应用程序变量。执行此过程后输出数据将返回到绑定变量。DB-Library API 也支持将存储过程参数和返回代码绑定到程序变量。