创建带有游标的存储过程sql语句

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

游标中用到的函数,就是前一篇文章中创建的那个函数。

另外,为了方便使用,把游标放在存储过程中,这样就可以方便地直接使用存储过程来执行游标了。

1create procedure UpdateHKUNo --存储过程里面放置游标

2as

3begin

4

5declare UpdateHKUNoCursor cursor--声明一个游标,查询满足条件的数据

6for select psn_code from person where type='E'and hku_no is null

7

8open UpdateHKUNoCursor --打开

9

10declare@noToUpdate varchar(20) --声明一个变量,用于读取游标中的值

11fetch next from UpdateHKUNoCursor into@noToUpdate

12

13while@@fetch_status=0--循环读取

14begin

15--print @noToUpdate

16update person set hku_no=dbo.GetExtUserHKUNo() where

psn_code=@noToUpdate

17fetch next from UpdateHKUNoCursor into@noToUpdate

18end

19

20close UpdateHKUNoCursor --关闭

21

22deallocate UpdateHKUNoCursor --删除

23

24end

25

26--exec UpdateHKUNo

另外,判断数据库中是否存在某一存储过程(Sqlserver 2000):

if exists (select*from sysobjects where name='UpdateHKUNo'and xtype ='P')

print'yse'

else

print'no'

一、无参数的存储过程的创建、修改、执行、删除

create procedure Myprocedure --创建,修改时是alter

as

begin

--do something

select*from sysobjects

end

execute Myprocedure --执行

drop procedure Myprocedure

传入参数,还有另外一种形式

create proc ProcWithParam --创建带有传入参数的存储过程

@id int--参数没有用括号标记

as

begin

select*from sysobjects where id=@id--使用参数

end

exec ProcWithParam 4--执行时,在右边附带参数

drop proc ProcWithParam

三、带传出参数的存储过程(如果要传入、传出的,则把这个和前面第二个综合就好啦):)

create proc ProuWithParamOut(@date datetime out) --不带out,将被默认为传入参数!

as

begin

select@date=crdate from sysobjects where id=1--传出参数只能是一个值,如果不带条件地查找,得到的数值是一个列表,将只取最后一个值end

declare@date datetime--声明一个变量,用于接收存储过程传出的参数exec ProuWithParamOut @date out --调用时,需要右边附带用于接收传出参数的变量

select@date as'存储过程传出的参数'--取得传出的参数,并自定义列名

注:传出参数的声明也可以像传入参数那样写,不需括号

create proc ProuWithParamOut --不带out,将被默认为传入参数!

@date datetime out

as

begin

select@date=crdate from sysobjects where id=4--传出参数只能是一个值,如果不带条件地查找,得到的数值是一个列表,将只取最后一个值end

相关文档
最新文档