T-SQL中的常量与变量

1.常量:在程序运行中其值不能改变的量

(1)字符串常量:字符串常量定义在单引号内。字符串常量包含字母、数字字符(a~z、A~Z和0~9)及特殊字符(如数字号#、感叹号!、at符@)

(2)二进制常量:

在Transact—SQL中定义二进制常量,需要使用0x,并采用十六进制来表示,不再需要括号。 例如,以下为二进制常量: 0xB0A1

0xB0C4

0xB0C5

(3)货币常量:货币常量是以“$”作为前缀的一个整型或实型常量数据,例如: $1314, +$1314

(4)日期和时间常量

定义日期和时间常量需要使用特定格式的字符日期值,并使用单引号。 例如,以下为日期和时间常量:

'2012年10月9日'

'15:39:15'

'10/09/2012' '07:59  AM'

(5)BIT常量

 在Transact—SQL中,bit常量使用数字0或1即可,并且不包括在引号中。如果使用一个大于1的数字,则该数字将转换为1

2.变量

(1)全局变量:由系统提供,用于存储一些系统信息,只能使用不能定义  以@@开头,系统提供了30多个全局变量,以下是一些常用变量的功能和使用方法进行介绍

(1)@@CONNECTIONS 记录自最后一次服务器启动以来,所有针对这台服务器进行的连接数目,包括没有连接成功的尝试。 使用@@CONNECTIONS可以让系统管理员很容易地得到今天所有试图连接本服务器的连接数目。

(2)@@CUP_BUSY 记录自上次启动以来尝试的连接数,无论连接成功还是失败,都以ms为单位的CPU工作时间。

(3)@@CURSOR_ROWS 返回在本次服务器连接中,打开游标取出数据行的数目。

(4)@@DBTS 返回当前数据库中timestamp数据类型的当前值。 返回执行上一条Transact-SQL语句所返回的错误代码。

(6)@@FETCH_STATUS 返回上一次使用游标FETCH操作所返回的状态值,且返回值为整型

 (7)@@IDENTITY 返回最近一次插入的identity列的数值,返回值是numeric。 

(8)@@IDLE 返回以ms为单位计算SQL Server服务器自最近一次启动以来处于停顿状态的时间。

(9)@@IO_BUSY 返回以ms为单位计算的SQL Server服务器自最近一次启动以来花在输入和输出上的时间。

(10)@@LOCK_TIMEOUT 返回当前对数据锁定的超时设置。

(11)@@PACK_RECEIVED 返回SQL Server服务器自最近一次启动以来一共从网络上接收数据分组的数目。

(12)@@PACK_SENT 返回SQL Server服务器自最近一次启动以来一共向网络上发送数据分组的数目。

(13)@@PROCID 返回当前存储过程的ID标识。

(14)@@REMSERVER 返回在登录记录中记载远程SQL Server服务器的名字。 

(15)@@ROWCOUNT     返回上一条SQL语句所影响到数据行的数目。对所有不影响数据库数据的SQL语句,这个全局变量返回的结果是0。在进行数据库编程时,经常要检测@@ROWCOUNT的返回值,以便明确所执行的操作是否达到了目标。 (16)@@SPID 返回当前服务器进程的ID标识。

(17)@@TOTAL_ERRORS 返回自SQL Server服务器启动来,所遇到读写错误的总数。

(18)@@TOTAL_READ 返回自SQL Server服务器启动来,读磁盘的次数。

(19)@@TOTAL_WRITE 返回自SQL Server服务器启动来,写磁盘的次数。

(20)@@TRANCOUNT 返回当前连接中,处于活动状态事务的数目。

(21)@@VERSION 返回当前SQL Server服务器安装日期、版本,以及处理器的类型。

(2)局部变量:由用户自定义的变量,可以用来存储数值型,字符串型等数据,也可以 存储函数或存储过程返回来的值

使用DECLARE声明局部变量,局部变量以@开头

声明语法:DECLARE{@变量名称   局部变量的数据类型}

eg:DECLARE @name nvarchar(10)

     DECLARE @age int

赋值语法:(使用SET和SELECT语句进行赋值 )  SET/SELECT @局部变量名称=value

eg:set @name='张三'

     select@age=20

猜你喜欢

转载自blog.csdn.net/qq_43552118/article/details/87880457