小男孩‘自慰网亚洲一区二区,亚洲一级在线播放毛片,亚洲中文字幕av每天更新,黄aⅴ永久免费无码,91成人午夜在线精品,色网站免费在线观看,亚洲欧洲wwwww在线观看

分享

Sql Server 游標(biāo)(利用游標(biāo)逐行更新數(shù)據(jù))、存儲過程

 復(fù)雜網(wǎng)絡(luò)621 2015-11-19

游標(biāo)中用到的函數(shù),就是前一篇文章中創(chuàng)建的那個函數(shù)。

另外,為了方便使用,把游標(biāo)放在存儲過程中,這樣就可以方便地直接使用存儲過程來執(zhí)行游標(biāo)了。

復(fù)制代碼
 1 create procedure UpdateHKUNo    --存儲過程里面放置游標(biāo)
2 as
3 begin
4
5 declare UpdateHKUNoCursor cursor --聲明一個游標(biāo),查詢滿足條件的數(shù)據(jù)
6 for select psn_code from person where type='E' and hku_no is null
7
8 open UpdateHKUNoCursor --打開
9
10 declare @noToUpdate varchar(20) --聲明一個變量,用于讀取游標(biāo)中的值
11 fetch next from UpdateHKUNoCursor into @noToUpdate
12
13 while @@fetch_status=0 --循環(huán)讀取
14 begin
15 --print @noToUpdate
16 update person set hku_no=dbo.GetExtUserHKUNo() where psn_code=@noToUpdate
17 fetch next from UpdateHKUNoCursor into @noToUpdate
18 end
19
20 close UpdateHKUNoCursor --關(guān)閉
21
22 deallocate UpdateHKUNoCursor --刪除
23
24 end
25
26 --exec UpdateHKUNo
復(fù)制代碼

另外,判斷數(shù)據(jù)庫中是否存在某一存儲過程(Sqlserver 2000):

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


既然說到存儲過程,順便記錄多一些~

一、無參數(shù)的存儲過程的創(chuàng)建、修改、執(zhí)行、刪除

復(fù)制代碼
create procedure Myprocedure    --創(chuàng)建,修改時是alter
as
begin
--do something
select * from sysobjects
end

execute Myprocedure --執(zhí)行

drop procedure Myprocedure
復(fù)制代碼

二、帶傳入?yún)?shù)的存儲過程:

View Code

  傳入?yún)?shù),還有另外一種形式

復(fù)制代碼
create proc ProcWithParam   --創(chuàng)建帶有傳入?yún)?shù)的存儲過程
@id int --參數(shù)沒有用括號標(biāo)記
as
begin
select * from sysobjects where id=@id --使用參數(shù)
end

exec ProcWithParam 4 --執(zhí)行時,在右邊附帶參數(shù)

drop proc ProcWithParam
復(fù)制代碼

三、帶傳出參數(shù)的存儲過程(如果要傳入、傳出的,則把這個和前面第二個綜合就好啦):)

復(fù)制代碼
create proc ProuWithParamOut(@date datetime out)    --不帶out,將被默認(rèn)為傳入?yún)?shù)!
as
begin
select @date=crdate from sysobjects where id=1 --傳出參數(shù)只能是一個值,如果不帶條件地查找,得到的數(shù)值是一個列表,將只取最后一個值
end

declare @date datetime --聲明一個變量,用于接收存儲過程傳出的參數(shù)
exec ProuWithParamOut @date out --調(diào)用時,需要右邊附帶用于接收傳出參數(shù)的變量
select @date as '存儲過程傳出的參數(shù)' --取得傳出的參數(shù),并自定義列名
復(fù)制代碼

注:傳出參數(shù)的聲明也可以像傳入?yún)?shù)那樣寫,不需括號

create proc ProuWithParamOut    --不帶out,將被默認(rèn)為傳入?yún)?shù)!
@date datetime out
as
begin
select @date=crdate from sysobjects where id=4 --傳出參數(shù)只能是一個值,如果不帶條件地查找,得到的數(shù)值是一個列表,將只取最后一個值
end






    本站是提供個人知識管理的網(wǎng)絡(luò)存儲空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點。請注意甄別內(nèi)容中的聯(lián)系方式、誘導(dǎo)購買等信息,謹(jǐn)防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請點擊一鍵舉報。
    轉(zhuǎn)藏 分享 獻花(0

    0條評論

    發(fā)表

    請遵守用戶 評論公約

    類似文章 更多