VB.net 2010 视频教程 VB.net 2010 视频教程 python基础视频教程
SQL Server 2008 视频教程 c#入门经典教程 Visual Basic从门到精通视频教程
当前位置:
首页 > 数据库 > MongoDB >
  • SQL Server 2008教程之编程基础—常量与变量

编程基础

Transact-SQL语言是一系列操作数据库及数据库对象的命令语句,因此了解基本语法和流程语句的构成是必须的,这主要包括常量和变量、运算符、表达式、注释等。

4.2.1  常量与变量

在任何语言中,最不可少的便是常量和变量,它们是语言编程的基础元素。常量,也称为文字值或标量值,是指程序运行中值不变的量,用于表示特定数据值的符号,根据代表的数据类型不同,值也就不同,可以是日期型、数值型、字符串型等。
在表4-1列出了SQL Server 2008中可用的常量类型及常量的表示说明。
表4-1  常量类型及说明
常量类型 常量表示说明
字符串常量 包括在单引号或双引号中,由字母数(a-z、A-Z)、数字字符(0-9)以及特殊字符(如感叹号(!)、at符(@)和数字号(#))组成
二进制常量 只有0或者1构成的串,并且不使用引号。如果使用一个大于1的数字,他将被转换为1
十进制整型常量 使用不带小数点的十进制数据表示
十六进制整型常量 使用前缀0X后跟十六进制数字串表示
日期常量 使用单引号将日期时间字符串括起来组成
实型常量 有定点表示和浮点表示两种方式
货币常量 以前缀为可选的小数点和可选的货币符号的数字字符串来表示
变量,就是在脚本中没有固定值的元素对象。在Microsoft SQL Server 2008系统中,存在两种类型的变量。第一种是系统定义和维护的全局变量;第二种是用户定义用来保存中间结果的局部变量。
1.系统全局变量
系统全局变量是SQL Server系统提供并赋值的变量。用户不能建立全局变量,也不能用SET语句来修改全局变量的值。通常将全局变量的值赋给局部变量,以便保存和处理。全局变量以两个@符号开头。
例如,可以使用全局变量@@VERSION查看当前使用的SQL Server的版本信息,语句如下所示:
SELECT @@VERSION AS [当前SQL Server版本]
在查询窗口中执行上述语句,如图4-1所示。

图4-1  使用全局变量
2.局部变量
局部变量是作用域局限在一定范围内的Transact-SQL对象。在SQL Server中,局部变量是用户自定义的,可以保存单个特定类型数据值对象。
通常情况下,局部变量在一个批处理(也可以是存储过程或触发器)中被声明或定义,然后该批处理内的SQL语句就可以设置这个变量的值,或者是引用这个变量已经被赋予的值。当这个批处理结束后,这个局部变量的生命周期也就随之消失。
要创建局部变量,使用DECLARE语句,其语法如下:
DECLARE
{@local_variable data_type|
 @cursor_variable CURSOR
}[,…n]
主要参数说明如下:
l   @local_variable  是变量的名称,他必须以@开发。
l   data_type  是任何由系统提供的或用户定义的数据类型。变量不能是text、ntext或image数据类型。
l   table_type_definition  用于定义表数据类型。表声明包括列定义、名称、数据类型和约束。允许的约束类型只包括PRIMARY KEY、UNIQUE KEY、NULL和CHECK。
l   n  表示可以指定多个变量并对变量赋值的占位符。当声明表变量时,表变量必须是DECLARE语句中正在声明的变量。
声明局部变量后要给局部变量赋值,可以使用SET或SELECT语句:
SET @local_variable = expression
SELECT @ local_variable = expression[,…n]
其中,@local_variable是除cursor、text、ntext、image外的任何类型变量名;expression是任何有效的SQL Server表达式。
SELECT @lacol_variable通常用于将单个值返回到变量中,如果expression为列名,则返回多个。如果SELECT语句返回多个值,将返回的最后一个值赋予变量。如果SELECT语句没有返回行,变量将保留当前值。如果expression是不返回值的子查询,则将变量设为NULL。因此,通常情况下使用SET而不是SELECT给变量赋值。
例如,将局部变量hello声明为char类型,长度为20,并为其赋值为hello,world!其SQL语句如下:
DECLARE @hello char(20)
SET @hello='hello,world!'

 


相关教程