博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
sql server中局部变量与全局变量的 申明与赋值(转)
阅读量:6273 次
发布时间:2019-06-22

本文共 1714 字,大约阅读时间需要 5 分钟。

来源:http://www.111cn.net/database/mssqlserver/36734.htm

例子:http://www.cnblogs.com/sunxi/p/4497493.html

局部变量用一个@标识,全局变量用两个@(常用的全局变量一般都是已经定义好的);

申明局部变量语法:declare @变量名 数据类型;例如:declare @num int;

赋值:有两种方法式(@num为变量名,value为值)

set @num=value;   或   select @num=value;

如果想获取查询语句中的一个字段值可以用select给变量赋值,如下:

select @num=字段名 from 表名 where ……

中变量不用事前申明,在用的时候直接用“@变量名”使用就可以了。

第一种用法:set @num=1; 或set @num:=1; //这里要使用变量来保存数据,直接使用@num变量

第二种用法:select @num:=1; 或 select @num:=字段名 from 表名 where ……

注意上面两种赋值符号,使用set时可以用“=”或“:=”,但是使用select时必须用“:=赋值”

在sql中,我们常常使用临时表来存储临时结果,对于结果是一个集合的情况,这种方法非常实用,但当结果仅仅是一个数据或者是几个数据时,还要去建一个表,显得就比较麻烦,另外,当一个sql语句中的某些元素经常变化时,比如选择条件,(至少我想)应该使用局部变量。当然ms   sql   server的全局变量也很有用。  

> > > > 局部变量  

声明:declare   @local_variable   data_type  

@local_variable   是变量的名称。变量名必须以   at   符   (@)   开头。data_type   是任何由系统提供的或用户定义的数据类型。变量不能是   text、ntext   或   image   数据类型。  

示例:  

use   master   

declare   @sel_type   char(2)   
declare   @sel_cunt   numeric(10)   
set   @sel_type   =   'u '/*user   table*/   
set   @sel_cunt   =   10  

/*返回系统中用户表的数目*/   

select   @sel_cunt   =   count(*)   
from   sysobjects   
where   type   =   @sel_type  

select   @sel_cunt   as   'user   table   ' 's   count '  

如果要返回系统表的数目,可以用set   @sel_type   =   's '  

可能这个例子并不能说明使用变量的好处,我只是想说明使用方法。当一组(几个甚至几十个)sql语句都使用某个变量时,就能体会到他的好处了。  

> > > > 全局变量  

全局变量是系统预定义的,返回一些系统信息,全局变量以两个at(@)开头。下面是我统计了一些较为常用的变量。  

@@connections   

返回自上次启动以来连接或试图连接的次数。  

@@cursor_rows   

返回连接上最后打开的游标中当前存在的合格行的数量。  

@@datefirst   

返回每周第一天的数字  

@@error   

返回最后执行的sql   语句的错误代码。  

@@fetch_status   

返回被   fetch   语句执行的最后游标的状态,而不是任何当前被连接打开的游标的状态。  

@@identity   

返回最后插入的标识值  

@@langid   

返回当前所使用语言的本地语言标识符(id)。  

@@language   

返回当前使用的语言名。  

@@lock_timeout   

返回当前会话的当前锁超时设置,单位为毫秒。  

@@procid   

返回当前过程的标识符   (id)   。  

@@rowcount   

返回受上一语句影响的行数。  

@@servername   

返回运行   的本地服务器名称。  

@@spid   

返回当前用户进程的服务器进程标识符   (id)。  

@@trancount   

返回当前连接的活动事务数。  

@@version   

返回当前安装的日期、版本和处理器类型。

你可能感兴趣的文章
dangdang.ddframe.job中页面修改表达式后进行检查
查看>>
Web基础架构:负载均衡和LVS
查看>>
Linux下c/c++相对路径动态库的生成与使用
查看>>
SHELL实现跳板机,只允许用户执行少量允许的命令
查看>>
SpringBoot 整合Redis
查看>>
nodejs安装以及环境配置(很好的node安装和配置文章,少走很多弯路)
查看>>
2014上半年大片早知道
查看>>
Android 6.0指纹识别App开发案例
查看>>
ios runtime基础知识
查看>>
正文提取算法
查看>>
Arcgis Engine(ae)接口详解(8):临时元素(element)
查看>>
大数据技术核心之ETL
查看>>
轻松学PHP
查看>>
Android android.support.design包
查看>>
CheckBox:屏蔽setChecked方法对OnCheckedChangeListener的影
查看>>
java线程池
查看>>
UI面试内容
查看>>
Linux之RPM详解
查看>>
Windows Azure 常见问题及测试题
查看>>
flex DateChooser
查看>>