-
变量
-
-
SQL Server变量是指在SQL Server数据库管理系统中用于存储数据的可变实体。这些变量可以在查询执行过程中改变其值,与常量相对,常量是固定不变的。SQL Server中的变量分为两种主要类型:局部变量和全局变量。
-
-
一、全局变量
全局变量是由系统定义的,在整个SQL Server实例内都能访问到的变量,全部变量以@@开头,用户只能访问,不能赋值。 -
select APP_NAME ( ) as w --当前会话的应用程序 select @@ERROR --返回最后执行的 Transact-SQL 语句的错误代码(integer)(如果最后一条语句不出错,就一直是0) select @@IDENTITY --返回最后插入的标识值 select USER_NAME() --返回用户数据库用户名 select @@CONNECTIONS --返回自上次SQL启动以来连接或试图连接的次数。 select GETDATE() --当前时间 select @@CPU_BUSY/100 --返回自上次启动SQL 以来 CPU 的工作时间,单位为毫秒 USE tempdb select @@DBTS as w --为当前数据库返回当前 timestamp 数据类型的值。这一 timestamp 值保证在数据库中是唯一的。 select @@IDLE as w --返回SQL自上次启动后闲置的时间,单位为毫秒 select @@IO_BUSY AS w --返回SQL自上次启动后用于执行输入和输出操作的时间,单位为毫秒 select @@LANGID AS w --返回当前所使用语言的本地语言标识符(ID) select @@LANGUAGE AS w --返回当前使用的语言名 select @@LOCK_TIMEOUT as w --当前会话的当前锁超时设置,单位为毫秒。 select @@MAX_CONNECTIONS as w --返回SQL上允许的同时用户连接的最大数。返回的数不必为当前配置的数值 EXEC sp_configure --显示当前服务器的全局配置设置 select @@MAX_PRECISION as w --返回 decimal 和 numeric 数据类型所用的精度级别,即该服务器中当前设置的精度。默认最大精度38。 select @@OPTIONS as w --返回当前 SET 选项的信息。 select @@PACK_RECEIVED as w --返回SQL自启动后从网络上读取的输入数据包数目。 select @@PACK_SENT as w --返回SQ自上次启动后写到网络上的输出数据包数目。 select @@PACKET_ERRORS as w --返回自SQL启动后,在SQL连接上发生的网络数据包错误数。 select @@SERVERNAME as w --返回运行SQL服务器名称。 select @@SERVICENAME as w --返回SQL正在其下运行的注册表键名 select @@TIMETICKS as w --返回SQL服务器一刻度的微秒数 select @@TOTAL_ERRORS AS w --返回 SQL服务器自启动后,所遇到的磁盘读/写错误数。 select @@TOTAL_READ as w --返回 SQL服务器自启动后读取磁盘的次数。 select @@TOTAL_WRITE as w --返回SQL服务器自启动后写入磁盘的次数。 select @@TRANCOUNT as w --返回当前连接的活动事务数。 select @@VERSION as w --返回SQL服务器安装的日期、版本和处理器类型。
-
-
-
-
二、局部变量
-
1. 局部变量由用户定义,生命周期只在一个批处理内有效。
-
2. 局部变量的声明
-
1. 介绍:
局部变量的声明必须以"DECLARE"(declare)作为关键字,变量的命名必须以"@"作为变量名的第一个字符.必须为所声明的变量提供一个数据类型和数据长度。
注意:局部变量的数据类型不能为Text,ntext,和Image类型,当对于字符型变量只提供数据类型没有提供数据长度时,数据长度默认为1.
-
实例:
-
DECLARE @Name nvarchar(20)
-
-
3. 使用set设置变量
-
DECLARE @i int,@j int set @i = 10; set @j = 20;
-
-
4. 使用select设置变量
-
DECLARE @i int SELECT @i = 100
-
-
5. set和select的区别
-
1. set 不支持同时对多个变量赋值,但是select可以同时对多个变量赋值
-
2. set 表达式返回多个值的时候会出错,select会获取最后一个值
-
3. set查询一个没有的数据时候, 默认值为null,select保持原值
-
-
-