欢迎来到天天文库
浏览记录
ID:34763189
大小:70.68 KB
页数:3页
时间:2019-03-10
《局部变量的定义与使用》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库。
1、Transact-SQL局部变量Transact-SQL局部变量是可以保存单个特定类型数据值的对象。批处理和脚本中的变量通常用于:·作为计数器计算循环执行的次数或控制循环执行的次数。·保存数据值以供控制流语句测试。·保存存储过程返回代码要返回的数据值或函数返回值。注意:某些Transact-SQL系统函数的名称以两个at符号(@@)打头。虽然在MicrosoftSQLServer的早期版本中,@@functions被称为全局变量,但它们不是变量,也不具备变量的行为。@@functions是系统函数,它们的语法遵循函数的规则。示例:以下脚本创建
2、一个小的测试表并向其填充26行。脚本使用变量来执行下列三个操作:·通过控制循环执行的次数来控制插入的行数。·提供插入整数列的值。·作为表达式一部分生成插入字符列的字母的函数。CREATETABLETestTable(colaint,colbchar(3));GOSETNOCOUNTON;GODECLARE@MyCounterint;SET@MyCounter=0;WHILE(@MyCounter<26)BEGIN;INSERTINTOTestTableVALUES(@MyCounter,CHAR((@MyCounter+ASCII('a'))
3、));SET@MyCounter=@MyCounter+1;END;GOSETNOCOUNTOFF;GOSELECTcola,colbFROMTestTable;GO一.声明Transact-SQL变量DECLARE语句通过以下操作初始化Transact-SQL变量:1.指定名称。名称的第一个字符必须为一个@。2.指定系统提供的或用户定义的数据类型和长度。对于数值变量还指定精度和小数位数。对于XML类型的变量,可以指定一个可选的架构集合。3.将值设置为NULL。例:DECLARE@MyCounterint;该DECLARE语句使用int数据类
4、型创建名为@mycounter的局部变量。例:DECLARE@LastNamenvarchar(30),@FirstNamenvarchar(20),@StateProvincenchar(2);此DECLARE语句创建了三个名为@LastName、@FirstName和@StateProvince的局部变量,并将每个变量都初始化为NULL二.为Transact-SQL变量设置值第一次声明变量时,其值设置为NULL。若要为变量赋值,请使用SET语句。这是为变量赋值的首选方法。也可以通过SELECT语句的选择列表中当前所引用值为变量赋值。若要通
5、过使用SET语句为变量赋值,请包含变量名和需要赋给变量的值。这是为变量赋值的首选方法。例如,下面的批处理声明两个变量、为它们赋值并在SELECT语句的WHERE子句中予以使用:USEAdventureWorks;GODECLARE@FirstNameVariablenvarchar(50),@PostalCodeVariablenvarchar(15);SET@FirstNameVariable=N'Amy';SET@PostalCodeVariable=N'BA53HX';SELECTLastName,FirstName,JobTitle,
6、City,StateProvinceName,CountryRegionNameFROMHumanResources.vEmployeeWHEREFirstName=@FirstNameVariableORPostalCode=@PostalCodeVariable;GO变量也可以通过选择列表中当前所引用的值赋值。如果在选择列表中引用变量,则它应当被赋以标量值或者SELECT语句应仅返回一行。例如:USEAdventureWorks;GODECLARE@EmpIDVariableint;SELECT@EmpIDVariable=MAX(Emp
7、loyeeID)FROMHumanResources.Employee;如果SELECT语句返回多行而且变量引用一个非标量表达式,则变量被设置为结果集最后一行中表达式的返回值。例如,在此批处理中将@EmpIDVariable设置为返回的最后一行的EmployeeID值,此值为1:USEAdventureWorks;GODECLARE@EmpIDVariableint;SELECT@EmpIDVariable=EmployeeIDFROMHumanResources.EmployeeORDERBYEmployeeIDDESC;SELECT@Em
8、pIDVariable;GO三.变量的作用域变量的作用域就是可以引用该变量的Transact-SQL语句的范围。变量的作用域从声明变量的地方开始到声明变量的批处理或
此文档下载收益归作者所有