文章详情

  • 游戏榜单
  • 软件榜单
关闭导航
热搜榜
热门下载
热门标签
php爱好者> php文档>如何开发存储过程

如何开发存储过程

时间:2010-09-18  来源:寂寞流星

众所周知,存储过程只是在第一次进行编译,以后直接可以调用。在做项目时,碰到使用存储过程的机会太多了,今天就来总结下我在写存储过程的一些心得体会。

个人认为,写存储过程的时候只要能把握住两个要点基本上就没啥大问题了。 1.游标 2.动态sql语句 对于游标,遵循如下的流程: 1.       定义游标:create _cursorName cursor for … 2.       打开游标 :open _cursorName 3.       进行循环:while @@fetch_status=0 4.       关闭游标:close _cursorName 5.       释放游标:deallocate _cursorName 平时开发中比较头疼的就是动态sql的问题,动态sql有两种执行方式:使用execute执行、使用exec sp_executesql执行. 其中第二种方式可以灵活的设置输入输出参数,推荐使用。下面举个例子。 Declare @par nvarchar(500) Declare @sql nvarchar(500) Declare @nid varchar(10) Declare @nworkid varchar(10) Set @nworkid = 8888 --Set @sql = "select @id = agentid from tblagentinfo where workid='@workid'" set @sql = 'select @id = agentid from tblagentinfo where workid = @workid' Set @par = '@id varchar(10) output,@workid varchar(10)' exec sp_executesql @sql,@par,@nid output,@nworkid Print convert(varchar(10),@nid) 其中@par中的变量顺序要和后面执行时候变量的参数顺序一致,也就是说输出参数在前面,输入参数在后面。且@par必须是Unicode或可以隐式转换为ntext的字符串常量、变量 上面一段代码的意思是:根据@nworkid的值查询出对应的@id值,并打印出来。 这两种执行动态sql的方式,据网上说第二种的效率比第一种高,本人没有进行测试。 如果写一个复杂的存储过程,将上面两点都把握住后,无非就是再加些判断之类的条件语句。   下面做个实例。 需求:将每个公司对应的号码更新到pone和ptwo字段
相关阅读 更多 +
排行榜 更多 +
辰域智控app

辰域智控app

系统工具 下载
网医联盟app

网医联盟app

运动健身 下载
汇丰汇选App

汇丰汇选App

金融理财 下载