大家好,欢迎来到IT知识分享网。
![SQL 局部变量和全局变量插图1 SQL 局部变量和全局变量](https://yundeesoft.com/wp-content/uploads/2022/11/2022112316405970.jpg)
局部变量
局部变量是可自定义的变量。
作用:
1.储存从表中查询到的数据。
2.做过程中的临时变量。
作用范围:
仅在程序内部。
格式及用法:
以“@”开头,先声明后赋值再使用。
![SQL 局部变量和全局变量插图3 SQL 局部变量和全局变量](https://yundeesoft.com/wp-content/uploads/2022/11/2022112316405970.jpg)
局部变量声明
局部变量声明用declare声明。
语法:
declare @varaible_name datatype --declare @变量名 变量类型
例如:
declare @name nvarchar(10) declare @time datetime
![SQL 局部变量和全局变量插图5 SQL 局部变量和全局变量](https://yundeesoft.com/wp-content/uploads/2022/11/2022112316405970.jpg)
局部变量赋值
1.set赋值法:
set @变量名 = 变量值 set @name = '剑云锋'
2.select赋值法:
select @变量名 = 变量值 select @time = getdate();
局部变量输出:
1.print 文本格式单个输出。
特点:只能一个一个输出。
declare @name nvarchar(10) set @name = '剑云锋' print @name
![SQL 局部变量和全局变量插图7 SQL 局部变量和全局变量](https://yundeesoft.com/wp-content/uploads/2022/11/2022112316405970.jpg)
2.select表格格式输出。
declare @time datetime select @time = GETDATE(); select @time
![SQL 局部变量和全局变量插图9 SQL 局部变量和全局变量](https://yundeesoft.com/wp-content/uploads/2022/11/2022112316405970.jpg)
注意:
避免使用关键字、全局变量名做变量以及其他对象。
![SQL 局部变量和全局变量插图11 SQL 局部变量和全局变量](https://yundeesoft.com/wp-content/uploads/2022/11/2022112316405970.jpg)
全局变量
全局变量是系统内部使用的服务器级定义的系统预定义变量。
作用:
任何程序均可随时调用全局变量统称存储一些SQLserver 的配置设定值和效能统计数据。用户可引用全局变量来测试系统的设定值或者Transact-SQL 命令执行后的状态值。
作用范围:
不局限于某一程序,全局随时可调用。
格式及应用:
全局变量用户只可引用,不可自行定义。引用时必须用“@@全局变量名”来进行引用。
常用的全局变量
1.@@connections 返回自上次启动以来连接或试图连接的次数。
print @@connections
2. @@error 返回最后执行的SQL 语句的错误代码。
print @@error
3. @@rowcount 返回受上一语句影响的行数。
print @@rowcount
4.@@servername 返回运行的本地服务器名称。
print @@servername
5.@@version 返回当前安装的日期、版本和处理器类型。
print @@version
6.@@language 返回当前使用的语言名称
print @@language
7.@@lock_timeout 返回当前会话等待锁的时间长短其单位为毫秒
print @@lock_timeout
运行结果如下:
![SQL 局部变量和全局变量插图13 SQL 局部变量和全局变量](https://yundeesoft.com/wp-content/uploads/2022/11/2022112316405970.jpg)
其他的全局变量
1.@@CURSOR_ROWS 返回连接上最后打开的游标中当前存在的合格行的数量(返回被打开的游标中还未被读取的有效数据行的行数)
print @@CURSOR_ROWS
2.@@DATEFIRST 返回每周第一天的数字
print @@DATEFIRST
3.@@FETCH_STATUS 返回被 FETCH 语句执行的最后游标的状态,而不是任何当前被连接打开的游标的状态。
print @@FETCH_STATUS
4.@@IDENTITY 返回最后插入的标识值
print @@IDENTITY
5.@@LANGID 返回当前所使用语言的本地语言标识符(ID)。
print @@LANGID
6.@@PROCID 返回当前过程的存储过程标识符 (ID) 。
print @@PROCID
7.@@SPID 返回当前用户进程的服务器进程标识符 (ID)。
print @@SPID
8.@@TRANCOUNT 返回当前连接的活动事务数。
print @@TRANCOUNT
9.@@CPU_BUSY 返回自SQL Server 最近一次启动以来CPU 的工作时间其单位为毫秒
print @@CPU_BUSY
10.@@DATEFIRST 返回使用SET DATEFIRST 命令而被赋值的DATAFIRST 参数值SET DATEFIRST,命令用来指定每周的第一天是星期几
print @@DATEFIRST
11.@@DBTS 返回当前数据库的时间戳值必须保证数据库中时间戳的值是惟一的
print @@DBTS
12. @@FETCH_STATUS 返回上一次FETCH 语句的状态值
print @@FETCH_STATUS
13.@@IDLE 返回自SQL Server 最近一次启动以来CPU 处于空闭状态的时间长短单位为毫秒
print @@IDLE
14.@@IO_BUSY 返回自SQL Server 最近一次启动以来CPU 执行输入输出操作所花费的时间其单位为毫秒
print @@IO_BUSY
15.@@LANGID 返回当前所使用的语言ID 值
print @@LANGID
16.@@MAX_CONNECTIONS 返回允许连接到SQL Server 的最大连接数目
print @@MAX_CONNECTIONS
17.@@MAX_PRECISION 返回decimal 和numeric 数据类型的精确度
print @@MAX_PRECISION
18.@@NESTLEVEL 返回当前执行的存储过程的嵌套级数初始值为0
print @@NESTLEVEL
19.@@OPTIONS 返回当前SET 选项的信息
print @@OPTIONS
20.@@PACK_RECEIVED 返回SQL Server 通过网络读取的输入包的数目
print @@PACK_RECEIVED
21.@@PACK_SENT 返回SQL Server 写给网络的输出包的数目
print @@PACK_SENT
22.@@PACKET_ERRORS 返回网络包的错误数目
print @@PACKET_ERRORS
23.@@PROCID 返回当前存储过程的ID 值
print @@PROCID
24. @@REMSERVER 返回远程SQL Server 数据库服务器的名称
print @@REMSERVER
25.@@SERVICENAME 返回SQL Server 正运行于哪种服务状态之下如MSSQLServer MSDTC SQLServerAgent
print @@SERVICENAME
26.@@SPID 返回当前用户处理的服务器处理ID 值
print @@SPID
27.@@TEXTSIZE 返回SET 语句的TEXTSIZE 选项值SET 语句定义了SELECT 语句中text 或image数据类型的最大长度基本单位为字节
print @@TEXTSIZE
28.@@TIMETICKS 返回每一时钟的微秒数
print @@TIMETICKS
29.@@TOTAL_ERRORS 返回磁盘读写错误数目
print @@TOTAL_ERRORS
30.@@TOTAL_READ 返回磁盘读操作的数目
print @@TOTAL_READ
31.@@TOTAL_WRITE 返回磁盘写操作的数目
print @@TOTAL_WRITE
32.@@TRANCOUNT 返回当前连接中处于激活状态的事务数目
print @@TRANCOUNT
免责声明:本站所有文章内容,图片,视频等均是来源于用户投稿和互联网及文摘转载整编而成,不代表本站观点,不承担相关法律责任。其著作权各归其原作者或其出版社所有。如发现本站有涉嫌抄袭侵权/违法违规的内容,侵犯到您的权益,请在线联系站长,一经查实,本站将立刻删除。 本文来自网络,若有侵权,请联系删除,如若转载,请注明出处:https://yundeesoft.com/56513.html