(2)变量的分类 Transact-SQL语言包括两种形式的变量: ·用户自己定义的局部变量: ·系统提供的全局变量
( 2 )变量的分类 Transact-SQL 语言包括两种形式的变量: • 用户自己定义的局部变量; • 系统提供的全局变量
1.局部变量 局部变量是一个能够拥有特定数据类型的对 象,它的作用范围仅限在程序内部。 ·局部变量必须先定义才能被引用。使用 DECLARE命令定义局部变量,引用局部变量时 必须在其名称前加上标志“@”。 ·局部变量用于保存单个数据值,供控制流语 句测试以及保存由存储过程返回的数据值等。例 如,保存运算的中间结果,作为循环变量等
1. 局部变量 • 局部变量是一个能够拥有特定数据类型的对 象,它的作用范围仅限在程序内部。 • 局部变量必须先定义才能被引用。使用 DECLARE 命令定义局部变量,引用局部变量时 必须在其名称前加上标志“@” 。 • 局部变量用于保存单个数据值,供控制流语 句测试以及保存由存储过程返回的数据值等。例 如,保存运算的中间结果,作为循环变量等
2.局部变量的使用 )局部变量的定义 在批处理或过程中用 DECLARE语句声明局部 变量。语法格式: DECLARE @local_variable data_type [,...n] @local variable指定局部变量的名称; ·datatype设置局部变量的数据类型及大小。局部 变量可以为除text,ntext,image类型以外的任何 。 数据类型 。所有局部变量在声明后均初始化为NULL,可以 使用SELECT或SET设定相应的值
1) 局部变量的定义 在批处理或过程中用 DECLARE 语句声明局部 变量。语法格式: DECLARE { @local_variable data_type } [ ,...n] 2. 局部变量的使用 •@ local_variable 指定局部变量的名称 ; • datatype 设置局部变量的数据类型及大小。 局部 变量可以为除 text , ntext , image 类型以外的任何 数据类型。 • 所有局部变量在声明后均初始化为 NULL ,可以 使用 SELECT 或 SET 设定相应的值
2)局部变量赋值(SET或SELECT语句) 将DECLARE语句创建的局部变量设置为给定表 达式的值。 SET语句语法格式: SET @local_variable =expression 【例1】创建局部变量@var1、@var2,并赋 值,然后输出变量的值。 DECLARE @var1,@var2 char(20) SET@var1=’中国' 体一个SET语句只能给一个变量赋值/ SET@var2=@var1+'是一个伟大的国家' SELECT@var1,@var2*输出变量的值*/ Go
2) 局部变量赋值( SET 或 SELECT 语句) 将 DECLARE 语句创建的局部变量设置为给定表 达式的值。 SET 语句语法格式: SET @local_variable = expression 【例 1 】创建局部变量 @var1 、 @var2 ,并赋 值,然后输出变量的值。 DECLARE @var1,@var2 char(20) SET @var1 =’中国’ 中国’中国’ /* 一个 SET 语句只能给一个变量赋值 */ SET @var2 = @var1+’ 是一个伟大的国家’中国’ SELECT @var1,@var2 /* 输出变量的值 */ Go
【例2】创建一个名为Sex的局部变量,并在 SELECT语句中使用该局部变量查找表XS中所有女同 学的学号、姓名。 USE XSCJ DECLARE @sex bit SET @sex=0 SELECT学号,姓名 FROM XS VHERE性别=@sex 物3】使用查询给变量赋值。 USE XSCJ DECLARE @student char(8) SET@student::(SELECT姓名FROM XS) GO该语句若XS表中只有一条记录,可正常执行,否则将出 错。*1
【例 3 】使用查询给变量赋值。 USE XSCJ DECLARE @student char(8) SET @student=(SELECT 姓名 FROM XS) GO /* 该语句若 XS 表中只有一条记录,可正常执行,否则将出 错。 */ 【例 2 】创建一个名为 sex 的局部变量,并在 SELECT 语句中使用该局部变量查找表 XS 中所有女同 学的学号、姓名。 USE XSCJ DECLARE @sex bit SET @sex=0 SELECT 学号 , 姓名 FROM XS WHERE 性别 =@sex GO