Transact-SQL变量的声明


  本文标签:SQL变量 声明

  下面将为您详解Transact-SQL变量的声明,供您参考,使用DECLARE 语句可以通过以下操作初始化Transact-SQL变量:

  指派名称  。名称的第一个字符必须为@  。
指派系统提供或用户定义的数据类型和长度  。对于数字变量还指定精度和小数位数  。
将值设置为 NULL  。

  说明   对局部变量使用系统提供的数据类型可尽可能减少将来的维护问题  。

  例如,下面的 DECLARE 语句使用 int 数据类型创建名称为 @mycounter 的局部变量  。

  DECLARE @MyCounter INT

  若要声明多个局部变量,请在定义的第一个局部变量后使用一个逗号,然后指定下一个局部变量名称和数据类型  。

  例如,下面的 DECLARE 语句创建三个局部变量,名称分别为 @last_name、@fname 和 @state,并将每个变量初始化为 NULL:

  DECLARE @LastName NVARCHAR(30), @FirstName NVARCHAR(20), @State NCHAR(2)

  变量的作用域为可以引用该变量的 Transact-SQL 语句范围  。SQL变量的作用域从声明变量的地方开始到声明变量的批处理或存储过程的结尾  。例如,下面脚本产生语法错误,因为在一个批处理中所引用的SQL变量是在另一个批处理中定义的:

  DECLARE MyVariable INT
SET @MyVariable = 1
GO -- This terminates the batch.
-- @MyVariable has gone out of scope and no longer exists.

  -- This SELECT statement gets a syntax error because it is
-- no longer legal to reference @MyVariable.
SELECT *
FROM Employees
WHERE EmployeeID = @MyVariable