SELECT赋值语句的语法格式: SELECT {@local_variable=expression)[,...n] 说明如下: 1)SELECT语句通常用于将单个值返回到变量中 , 若有多个值时,将返回的最后一个值赋给变量; 2)若无返回行,则变量将保留当前值; 3)若expression不返回值,则变量设为NULL; 4)一个SELECT语句可以初始化多个局部变量。 SELECT语句也可用于局部变量的查看,格式如 下:SELECT@local_variable PRINT@local variable也可用于局部变量的查看
SELECT 赋值语句的语法格式: SELECT {@local_variable=expression} [,…n] 说明如下: 1 ) SELECT 语句通常用于将单个值返回到变量中 ,若有多个值时,将返回的最后一个值赋给变量; 2 )若无返回行,则变量将保留当前值; 3 )若 expression 不返回值,则变量设为 NULL ; 4 )一个 SELECT 语句可以初始化多个局部变量。 SELECT 语句也可用于局部变量的查看,格式如 下: SELECT @local_variable PRINT @local_variable 也可用于局部变量的查看
【例4】在XS表中不存在符合要求的结果,因此 对该表的查询不返回结果,变量@var1将保留原值。 USE XSCJ DECLARE @var1 nvarchar(30) SELECT@var1='刘丰' SELECT@var1=姓名 *将姓名列的值赋给变 量* FROM XS VHERE学号='64122312111 SELECT @var1 AS 'NAME *@var1为刘丰’*/
【例 4 】在 XS 表中不存在符合要求的结果,因此 对该表的查询不返回结果,变量 @var1 将保留原值。 USE XSCJ DECLARE @var1 nvarchar(30) SELECT @var1 = ' 刘丰 ' SELECT @var1 = 姓名 /* 将姓名列的值赋给变 量 */ FROM XS WHERE 学号 = '64122312111' SELECT @var1 AS 'NAME‘ /* @var1 为‘刘丰’中国’ */
3)局部游标变量的定义与赋值 (1)局部游标变量的定义 语法格式: DECLARE @cursor_variable_name CURSOR [,.n] CURSOR表示该变量为游标变量。 (2)游标变量的使用步骤 定义游标变量→给游标变量赋值→打开游标→利用 游标读取行(记录)→使用结束后关闭游标→删除 游标的引用
3 )局部游标变量的定义与赋值 (1) 局部游标变量的定义 语法格式: DECLARE { @cursor_variable_name CURSOR } [ ,...n] CURSOR 表示该变量为游标变量。 (2) 游标变量的使用步骤 定义游标变量给游标变量赋值打开游标利用 游标读取行 ( 记录 ) 使用结束后关闭游标删除 游标的引用
(3)局部游标变量的赋值:利用SET语句赋值 语法格式: SET @cursor_variable= {@cursor_variablel*将一个已存在的并且赋值 的游标变量的值赋给另一局部游标变量*/ cursor_name *将一个已申明的游标名赋给指定的局部游标变量*/ {CURSOR子句 *申明一个游标,同时将其赋给指定的局部游标变量*/ } }
(3) 局部游标变量的赋值:利用 SET 语句赋值 语法格式: SET { @cursor_variable= {@cursor_variable| /* 将一个已存在的并且赋值 的游标变量的值赋给另一局部游标变量 */ cursor_name| /* 将一个已申明的游标名赋给指定的局部游标变量 */ { CURSOR 子句 } /* 申明一个游标,同时将其赋给指定的局部游标变量 */ } }
【例5】使用游标变量 USE XSCJ DECLARE @CursorVar CURSOR 体定义游标变量* SET@CursorVar=CURSOR SCROLL DYNAMIC*给游标变量赋值 FOR SELECT学号,姓名 FROM XS WHERE姓名LIKE'王% OPEN @CursorVar 快打开游标* FETCH NEXT FROM@CursorVar*游标指向第一行记录*/ WHILE@@FETCH_STATUS=OR@@FETCH_STATUS保存 FETCH语句的执行状态,其值为0表示上一条执行成功;为-1表示 FETCH语句失败或此行不在结果集中;为-2表示被提取的行不存在(已删 除)。* BEGIN FETCH NEXT FROM @CursorVar 休通过游标读行记录*/ END CLOSE @CursorVar :关闭游标*! DEALLOCATE @CursorVar *删除对游标的引用*
【例 5 】使用游标变量 USE XSCJ DECLARE @CursorVar CURSOR /* 定义游标变量 */ SET @CursorVar = CURSOR SCROLL DYNAMIC /* 给游标变量赋值 */ FOR SELECT 学号 , 姓名 FROM XS WHERE 姓名 LIKE ' 王 %' OPEN @CursorVar /* 打开游标 */ FETCH NEXT FROM @CursorVar /* 游标指向第一行记录 */ WHILE @@FETCH_STATUS = 0 /* @@FETCH_STATUS 保存 FETCH 语句的执行状态,其值为 0 表示上一条执行成功;为 -1 表示 FETCH 语句失败或此行不在结果集中;为 -2 表示被提取的行不存在(已删 除)。 */ BEGIN FETCH NEXT FROM @CursorVar /* 通过游标读行记录 */ END CLOSE @CursorVar /* 关闭游标 */ DEALLOCATE @CursorVar /* 删除对游标的引用 */