存储过程游标,数据库-存储过程-游标-函数

一、存储过程 SQL99标准提出的SQL-invoked-rountines的概念,它开分为存储过程与函数,这里首先介绍存储过程 存储过程分为三类:系统存储过程(如:sp_help)、自定义存储过程、扩展存储过程 存储过程可以理解为一个SQL语句块,完成一些复杂的功能,当然可以包含应用程序的业务,比如:分页,生成订单号等,存储过程可以接收应用程序传递的参数,并将查询的结果返回给应用程序 1、存储过程的优点: 1)、运行效率高,因为存储过程不会在每一次调用时都解释执行,随便说一句,SQL执行后的执行计划会放在缓存中,这样下一次相同的SQL执行就不用再次优化了,从而加快速度 2)、存储过程降低了客户机与服务器的通信量,使用存储过程,就不用在应程序中拼SQL传回服务器,只须要存储过程名与参数就可以了 3)、方便实施企业规则,可以在存储过程里加入业务逻辑 2、存储过程的使用(重复使用) 创建:
create proc pc_whc as select * from whc /*执行*/ exec pc_whc
二、游标 游标可以理解为一个"指针",其指向的是一条记录,当用select语句得到一个结果集时,我们可以将它放到一个游标中,然后通过移动游标来读取每一条数据,并进行处理,感觉有点"遍历"数据 游标的使用: 1、 定义游标:declare cursor_name cursor For select 语句; 2、 打开游标:open cursor_name 3、 循环访问游标中的每一行数据: Fetch next from cursor_name into @参数列表 4、 游标的状态:@@fetch_status,用于判断游标fetch的状态,当为0时正常,不为一时异常 5、关闭并释放资源 例:
declare @whcId nchar(5),@whc int; /*定义一个游标*/ declare whc_cursor cursor for select CustomerID,EmployeeID from dbo.Orders /*打开一个游标*/ open whc_cursor /*移动指针,将数据放到变量中*/ fetch next from whc_cursor into @whcId,@whc while @@fetch_status = 0 begin print @whcid+' '+convert(nchar(5),@whc) fetch next from whc_cursor into @whcId,@whc end close whc_cursor deallocate whc_cursor
三、函数 函数相信大家都很清楚了,传递参数,然后返回一个结果,SQL中的函数也大致差不多,返回时使用ruturn,可以是int、varchar,table等类型,有了函数就可以把一些功能在一起,比如对数据的处理等 函数的创建(例子说明):
create function fun_whc( @str varchar(50) ) returns varchar(100) as begin declare @List varchar(200) set @List=@str+'My friend' --返回值 return @List end --调用 select DemoName,dbo.fun_whc(DemoName) from whc
最后要说明的是,小弟初学,哪里有不对的请指出,感激不尽!!!
Tags:  sql数据库游标 数据库的游标 数据库游标 存储过程返回游标 存储过程游标

延伸阅读

最新评论

发表评论