使用变量和参数(数据库引擎)

Transact-SQL 提供几种方式来在 Transact-SQL 语句之间传递数据。其中包括:

  • Transact-SQL 局部变量。

    Transact-SQL 变量是 Transact-SQL 批处理和脚本中可以保存数据值的对象。声明或定义此变量后,批处理中的一个语句可以将此变量设置为一个值,该批处理中后面的一个语句可以从此变量获取这个值。例如:

    USE AdventureWorks;
    GO
    DECLARE @EmpIDVar int;
    SET @EmpIDVar = 1234;
    SELECT *
    FROM HumanRresources.Employee
    WHERE EmployeeID = @EmpIDVar;
    
    注意注意

    在批处理中可声明的局部变量的最大值是 10,000。

  • Transact-SQL 参数。

    参数是用于在存储过程和执行该存储过程的批处理或脚本之间传递数据的对象。参数可以是输入参数,也可以是输出参数。例如:

    USE AdventureWorks;
    GO
    CREATE PROCEDURE ParmSample @EmpIDParm int AS
    SELECT EmployeeID, Title
    FROM HumanResources.Employee
    WHERE EmployeeID = @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 也支持将存储过程参数和返回代码绑定到程序变量。