使用游標(biāo)循環(huán)進(jìn)行SQL更新插入的SQL語(yǔ)句
作者:佚名
使用游標(biāo)循環(huán),可以實(shí)現(xiàn)SQL更新插入,下面就將為您詳細(xì)介紹該方法的SQL語(yǔ)句寫法,供您參考,希望對(duì)您有所啟迪。
使用SQL中的循環(huán),可以實(shí)現(xiàn)許多我們需要的操作,比如SQL更新操作。下面就為您介紹使用游標(biāo)循環(huán)進(jìn)行SQL更新插入的SQL語(yǔ)句寫法,希望對(duì)您深入學(xué)習(xí)SQL更新有所幫助。
- --開(kāi)始事務(wù)
- BEGIN TRAN
- --不顯示計(jì)數(shù)信息
- SET NOCOUNT ON
- DECLARE @ProjNo varchar(50),@CusNo varchar(50)
- --聲明游標(biāo)
- DECLARE CRMPSContact_cursor CURSOR FOR
- SELECT ProjNo
- FROM CRMPSContact
- WHERE ProjNo>0
- --打開(kāi)游標(biāo)
- OPEN CRMPSContact_cursor
- --取***行的值給專案變量: @ProjNo
- FETCH NEXT FROM CRMPSContact_cursor
- INTO @ProjNo
- --取得客戶號(hào)
- select @CusNoCusNo = CusNo
- from CRMPSProjectM
- where ProjNo = @ProjNo
- --得到CRMPSContact中某專案號(hào)對(duì)應(yīng)的客戶號(hào)
- update CRMPSContact
- set CusNo = @CusNo
- where ProjNo = @ProjNo
- --執(zhí)行錯(cuò)誤回滾
- if @@error!=0
- begin
- rollback tran
- return
- end
- --移動(dòng)游標(biāo),其它所有行更新操作(當(dāng)?shù)浇Y(jié)尾時(shí)退出)
- WHILE @@FETCH_STATUS = 0
- BEGIN
- --游標(biāo)移到下一行
- FETCH NEXT FROM CRMPSContact_cursor
- INTO @ProjNo
- --取得客戶號(hào)
- select @CusNoCusNo = CusNo
- from CRMPSProjectM
- where ProjNo = @ProjNo
- --得到CRMPSContact中某專案號(hào)對(duì)應(yīng)的客戶號(hào)
- update CRMPSContact
- set CusNo = @CusNo
- where ProjNo = @ProjNo
- --執(zhí)行錯(cuò)誤回滾
- if @@error!=0
- begin
- rollback tran
- return
- end
- END
- --提交所有變更
- COMMIT TRAN
- --關(guān)閉游標(biāo)
- CLOSE CRMPSContact_cursor
- --釋放游標(biāo)
- DEALLOCATE CRMPSContact_cursor
- --恢復(fù)設(shè)置
- SET NOCOUNT OFF
- GO
【編輯推薦】
教您如何進(jìn)行SQL跨表更新
責(zé)任編輯:段燃
來(lái)源:
互聯(lián)網(wǎng)