SQL中的变量

变量


局部变量是可以保存单个特定类型数据值的对象,变量的作用域从声明变量的地方开始到声明变量的批处理或存储过程的结尾。

局部变量使用DECLARE语句定义,并且指定变量的数据类型,然后可以使用SET或SELECT语句为变量初始化;局部变量必须以“@”开头,而且必须先声明后使用。

声明格式:

DECLARE @变量名 变量类型[,@变量名 变量类型…]

(1)变量名必须以 at 符 (@) 开头

(2)变量类型可以是任何系统提供的公共语言运行时 (CLR) 用户定义类型或别名数据类型。变量不能是 textntextimage 数据类型。

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

如: DECLARE @LastName nvarchar(30), @FirstName nvarchar(20), @StateProvince nchar(2);

(4)声明变量时,其值设置为 NULL。

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

(6)Tansact-SQL 系统函数的名称以两个 at 符号 (@@) 打头。早期版本中,@@functions 被称为全局变量,但它们不是变量,也不具备变量的行为。@@functions 是系统函数,它们的语法遵循函数的规则。

初始化:

局部变量不能使用“变量=变量值”的格式进行初始化,必须使用SELECT或SET语句来设置其初始值(SET 语句是为变量赋值的首选方法)。

初始化格式:

SELECT @局部变量=变量值

SET @局部变量=变量值

如果在单个 SELECT 语句中有多个赋值子句,则 SQL Server 不保证表达式求值的顺序,只有当赋值之间有引用时才能看到影响。

如果 SELECT 语句返回多行而且变量引用一个非标量表达式,则变量被设置为结果集最后一行中表达式的返回值。

例如,在此批处理中将 @EmpIDVariable 设置为返回的最后一行的 EmployeeID 值,此值为 1:

USE AdventureWorks;
GO
DECLARE @EmpIDVariable int;

SELECT @EmpIDVariable = EmployeeID
FROM HumanResources.Employee
ORDER BY EmployeeID DESC;

SELECT @EmpIDVariable;
GO
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值