使用游標循環進行SQL更新插入的SQL語句
作者:佚名
使用游標循環,可以實現SQL更新插入,下面就將為您詳細介紹該方法的SQL語句寫法,供您參考,希望對您有所啟迪。
使用SQL中的循環,可以實現許多我們需要的操作,比如SQL更新操作。下面就為您介紹使用游標循環進行SQL更新插入的SQL語句寫法,希望對您深入學習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 @CusNoCusNo = 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 @CusNoCusNo = CusNo
- from CRMPSProjectM
- where ProjNo = @ProjNo
- --得到CRMPSContact中某專案號對應的客戶號
- update CRMPSContact
- set CusNo = @CusNo
- where ProjNo = @ProjNo
- --執行錯誤回滾
- if @@error!=0
- begin
- rollback tran
- return
- end
- END
- --提交所有變更
- COMMIT TRAN
- --關閉游標
- CLOSE CRMPSContact_cursor
- --釋放游標
- DEALLOCATE CRMPSContact_cursor
- --恢復設置
- SET NOCOUNT OFF
- GO
【編輯推薦】
教您如何進行SQL跨表更新
責任編輯:段燃
來源:
互聯網