
上QQ阅读APP看书,第一时间看更新
4.3 变量
变量可以保存查询之后的结果,可以在查询语句中使用变量,也可以将变量中的值插入到数据表中,在SQL中变量的使用非常灵活方便,可以在任何SQL语句集合中声明使用,根据其生命周期,可以分为全局变量和局部变量。
4.3.1 局部变量

局部变量是用户可自定义的变量,它是一个能够拥有特定数据类型的对象,其作用范围仅限制在程序内部。局部变量被引用时要在其名称前加上标志“@”,而且必须先用DECLARE命令声明后才可以使用。
定义局部变量的语法形式如下:

主要参数含义介绍如下。
- @local-variable:用于指定局部变量的名称,变量名必须以符号“@”开头,且必须符合SQL Server的命名规则。
- data-type:用于设置局部变量的数据类型及其大小。data-type可以是任何由系统提供的或用户定义的数据类型。但是,局部变量不能是text、ntext或image数据类型。
4.3.2 全局变量

全局变量是SQL Server系统提供的内部使用的变量,不用用户参与定义,对用户而言,其作用范围并不仅局限于某一程序,而是任何程序均可以随时调用。
全局变量通常存储一些SQL Server的配置设定值和统计数据,用户可以在程序中用全局变量来测试系统的设定值或者是SQL命令执行后的状态值。
在使用全局变量时,由于全局变量不是由用户的程序定义的,它们是在服务器级定义的,用户只能使用预先定义的全局变量,而不能修改全局变量。引用全局变量时,必须以标记符“@@”开头。另外,局部变量的名称不能与全局变量的名称相同,否则会在应用程序中出现不可预测的结果。SQL Server中常用的全局变量及其含义如表4-1所示。
表4-1 SQL Server中常用的全局变量

续表
