Sql 事物 游標 使用方法

2021-05-22 09:25:42 字數 1382 閱讀 4247

--當兩個或兩以上的操作要麼都執行,要麼都不執行時要用事務。

1. sql寫法(事物+游標)

--開始事務

begin tran

--不顯示計數資訊

set nocount on

declare @projno varchar(50),@cusno varchar(50)

--宣告游標

declare crmpscontact_cursor cursor for 

select projno

from crmpscontact

where projno>0

--開啟游標

open crmpscontact_cursor

--取第一行的值給專案變數: @projno

fetch next from crmpscontact_cursor 

into @projno

--取得客戶號

select @cusno = cusno 

from crmpsprojectm 

where projno = @projno

--得到crmpscontact中某專案號對應的客戶號

update crmpscontact 

set cusno = @cusno

where projno = @projno

--執行錯誤回滾

if @@error!=0

begin

rollback tran

return

end--移動游標,其它所有行更新操作(當到結尾時退出)

while @@fetch_status = 0

begin      

--游標移到下一行

fetch next from crmpscontact_cursor 

into @projno

--取得客戶號

select @cusno = cusno 

from crmpsprojectm 

where projno = @projno

--得到crmpscontact中某專案號對應的客戶號

update crmpscontact 

set cusno = @cusno

where projno = @projno

--執行錯誤回滾

if @@error!=0

begin

rollback tran

return

endend

--提交所有變更

commit tran

--關閉游標

close crmpscontact_cursor

--釋放游標

deallocate crmpscontact ......

SQL游標原理和使用方法

在 資料庫開發過程中,當你檢索的資料只是一條記錄時,你所編寫的事務語句 往往使用select insert 語句。但是我們常常會遇到這樣情況,即從某一結果集中逐一地讀取一條記錄。那麼如何解決這種問題呢?游標為我們提供了一種極為優秀的解決方案。1.1 游標和游標的優點 在資料庫中,游標是乙個十分重要的...

SQL游標原理和使用方法

在資料庫開發過程中,當你檢索的資料只是一條記錄時,你所編寫的事務語句 往往使用select insert 語句。但是我們常常會遇到這樣情況,即從某一結果集中逐一地讀取一條記錄。那麼如何解決這種問題呢?游標為我們提供了一種極為優秀的解決方案。1.1 游標和游標的優點 在資料庫中,游標是乙個十分重要的概...

SQL游標原理和使用方法

在資料庫開發過程中,當你檢索的資料只是一條記錄時,你所編寫的事務語句 往往使用select insert 語句。但是我們常常會遇到這樣情況,即從某一結果集中逐一地讀取一條記錄。那麼如何解決這種問題呢?游標為我們提供了一種極為優秀的解決方案。1.1 游標和游標的優點 在資料庫中,游標是乙個十分重要的概...