SQL语句中两种变量的区别?

来源:北大青鸟飞迅校区|发布时间:2013-04-18 12:48:50

  SQL语句中的变量:变量是一种语言中必不可少的组成部分。Transact-SQL语言中有两种形式的变量,一种是用户自己定义的局部变量,另外一种是系统提供的全局变量。

  1. 局部变量

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

  定义局部变量的语法形式如下:

  DECLAER {@local_variable data_type} […n]

  其中,参数@local_variable用于指定局部变量的名称,变量名必须以符号@开头,并且局部变量名必须符合SQL Server的命名规则。参数data_type用于设置局部变量的数据类型及其大小。data_type可以是任何由系统提供的或用户定义的数据类型。但是,局部变量不能是 text,ntext 或 image 数据类型。

  使用DECLARE命令声明并创建局部变量之后,会将其初始值设为NULL,如果想要设定局部变量的值,必须使用SELECT命令或者SET命令。其语法形式为:

  SET { { @local_variable = expression } 或者 SELECT { @local_variable = expression } [ ,...n ]

  其中,参数@local_variable是给其赋值并声明的局部变量,参数expression是任何有效的SQL Server表达式。

  变量是一种语言中必不可少的组成部分。Transact-SQL语言中有两种形式的变量,一种是用户自己定义的局部变量,另外一种是系统提供的全局变量。

  2. 全局变量

  除了局部变量之外,SQL Server系统本身还提供了一些全局变量。全局变量是SQL Server系统内部使用的变量,其作用范围并不仅仅局限于某一程序,而是任何程序均可以随时调用。全局变量通常存储一些SQL Server的配置设定值和统计数据。用户可以在程序中用全局变量来测试系统的设定值或者是Transact-SQL命令执行后的状态值。在使用全局变量时应该注意以下几点:

  (1)全局变量不是由用户的程序定义的,它们是在服务器级定义的。

  (2)用户只能使用预先定义的全局变量。

  (3)引用全局变量时,必须以标记符“@@”开头。

  (4)局部变量的名称不能与全局变量的名称相同,否则会在应用程序中出现不可预测的结果。

  全局变量举例分析

  例3-29 显示到当前日期和时间为止试图登录SQL Server的次数。

  程序清单如下:

  SELECT GETDATE( ) AS '当前的时期和时间',

  @@CONNECTIONS AS '试图登录的次数'

上一篇:mysql数据库备份及还原常用命令有哪些?
下一篇:SQL中的运算符都有哪些?

热门话题

招生热线: 4008-0731-86 / 0731-82186801

学校地址: 长沙市天心区团结路6号

Copyright © 2006 | 湖南大计信息科技有限公司 版权所有

湘ICP备14017520号-3

关注我们
在线咨询
嘿,我来帮您!