北京市建设工程质量监督网站,网站了建设,网络建构是什么意思,自己如何做网站关键词排名一、存储过程 SQL99标准提出的SQL-invoked-rountines的概念#xff0c;它开分为存储过程与函数#xff0c;这里首先介绍存储过程 存储过程分为三类#xff1a;系统存储过程(如#xff1a;sp_help)、自定义存储过程、扩展存储过程 存储过程可以理解为一个SQL语句块它开分为存储过程与函数这里首先介绍存储过程 存储过程分为三类系统存储过程(如sp_help)、自定义存储过程、扩展存储过程 存储过程可以理解为一个SQL语句块完成一些复杂的功能当然可以包含应用程序的业务比如分页生成订单号等存储过程可以接收应用程序传递的参数并将查询的结果返回给应用程序 1、存储过程的优点 1、运行效率高因为存储过程不会在每一次调用时都解释执行随便说一句SQL执行后的执行计划会放在缓存中这样下一次相同的SQL执行就不用再次优化了从而加快速度 2、存储过程降低了客户机与服务器的通信量使用存储过程就不用在应程序中拼SQL传回服务器只须要存储过程名与参数就可以了 3、方便实施企业规则可以在存储过程里加入业务逻辑 2、存储过程的使用(重复使用) 创建: create proc pc_whcasselect * from whc/*执行*/exec pc_whc二、游标 游标可以理解为一个指针其指向的是一条记录当用select语句得到一个结果集时我们可以将它放到一个游标中然后通过移动游标来读取每一条数据并进行处理感觉有点遍历数据游标的使用1、 定义游标declare cursor_name cursor For select 语句2、 打开游标open cursor_name3、 循环访问游标中的每一行数据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 ListstrMy friend
--返回值return List
end
--调用
select DemoName,dbo.fun_whc(DemoName) from whc 最后要说明的是小弟初学哪里有不对的请指出感激不尽 转载于:https://www.cnblogs.com/xin_ny/archive/2011/09/25/sql_proc_function.html