亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 開發 > 綜合 > 正文

SQLServer 存儲過程 帶事務處理實例

2024-07-21 02:51:45
字體:
來源:轉載
供稿:網友
ALTER PRocedure [dbo].[P_DelImportData](	@orderNo varchar(50),			--定義存儲過程傳入參數 	@smallOrderNo varchar(50),	@phoneModel varchar(50),	@customer varchar(50))AS	SET NOCOUNT ON	declare @error int = 0    ---事務中的錯誤記錄,定義存儲過程中的變量(類似程序中的變量設定)  	declare @errerMsg varchar(500)       ---事物中的錯誤信息記錄	declare @moveNo int       ---挪單的數量	declare @originalOrderNo varchar(50) ---挪單的原大單號								 	create table #macSnInfo				--創建臨時表 	(		orderNo varchar(50),		mac varchar(50),		sn varchar(50),		boxNo varchar(50),		status varchar(50),		currentBoxNum int,		boxNumMax int,		smallOrderNo varchar(50),		sortBoxNum int,		importNum int,		importDate datetime,		exportDate datetime,		phoneModel varchar(50),		zpuz varchar(50),		rfpi varchar(50),		bigBatchNo varchar(50),		smallBatchNo varchar(50)	)	create table #phoneInfo	(		orderNo varchar(50),		customer varchar(50),		smallOrderNo varchar(50),		phoneModel varchar(50),		newPower varchar(50),		oldPower varchar(50),		software varchar(50),		hardware varchar(50),		amount varchar(50)	)	begin						---將數據插入臨時表做數據處理		insert into #macSnInfo			select orderNo,mac,sn,boxNo,status,currentBoxNum,boxNumMax,smallOrderNo					,sortBoxNum,importNum,importDate,exportDate,phoneModel,zpuz,					rfpi,bigBatchNo,smallBatchNo					from macSnInfo			where	(smallOrderNo=@smallOrderNo or @smallOrderNo='') 				and (orderNo=@orderNo or  @orderNo='')				and (phoneModel=@phoneModel or @phoneModel='') 		insert into #phoneInfo			select orderNo,customer,smallOrderNo,phoneModel,newPower,oldPower					,software,hardware,amount 					from phoneInfo			where	(smallOrderNo=@smallOrderNo or @smallOrderNo='') 				and (orderNo=@orderNo or  @orderNo='')				and (phoneModel=@phoneModel or @phoneModel='')				and (customer=@customer or @customer=''	)  				end	--設置事物回滾機制,xact_abort為 on,回滾整個事務	set xact_abort on 	--開啟事務	begin transaction 		if not exists(select * from #phoneInfo)			begin				set @errerMsg='沒有查詢到訂單數據!'    				rollback transaction  				select @errerMsg AS errorMsg				return -1 --設置操作結果錯誤標識   			end		else if exists(select boxNo from #macSnInfo where boxNo is not null)				--如果包裝表查詢出的結果是已經包裝的			begin				set @errerMsg='該訂單已經包裝過,不能直接刪除,請先清空包裝信息!'				rollback transaction  				select @errerMsg AS errorMsg				return -1 --設置操作結果錯誤標識     			end		if exists(select * from #phoneInfo where orderNo=smallOrderNo)				--如果存在訂單號相同的phoneInfo,是正常單			begin 				insert into del_bak_phoneInfo				--先進行數據備份					select orderNo,customer,smallOrderNo,phoneModel,newPower,oldPower							,software,hardware,amount,getdate()  							from #phoneInfo							 				set @error+=@@ERROR --記錄有可能產生的錯誤號  								insert into del_bak_macSnInfo 					select orderNo,mac,sn,boxNo,status,currentBoxNum,boxNumMax,smallOrderNo							,sortBoxNum,importNum,importDate,exportDate,phoneModel,zpuz,							rfpi,bigBatchNo,smallBatchNo,getdate()  							from #macSnInfo									set @error+=@@ERROR --記錄有可能產生的錯誤號  					---------------- 備份完數據開始刪除				delete from phoneInfo					where	(smallOrderNo=@smallOrderNo or @smallOrderNo='') 						and (orderNo=@orderNo or  @orderNo='')						and (phoneModel=@phoneModel or @phoneModel='')						and (customer=@customer or @customer=''	)  				set @error+=@@ERROR --記錄有可能產生的錯誤號 				delete from macSnInfo					where	(smallOrderNo=@smallOrderNo or @smallOrderNo='') 						and (orderNo=@orderNo or  @orderNo='')						and (phoneModel=@phoneModel or @phoneModel='')  				set @error+=@@ERROR --記錄有可能產生的錯誤號 			end		else				--不存在訂單號相同的phoneInfo,是挪單					begin					insert into del_bak_phoneInfo				--先進行數據備份					select orderNo,customer,smallOrderNo,phoneModel,newPower,oldPower							,software,hardware,amount,getdate() 							from #phoneInfo									set @error+=@@ERROR --記錄有可能產生的錯誤號  				insert into del_bak_macSnInfo 					select orderNo,mac,sn,boxNo,status,currentBoxNum,boxNumMax,smallOrderNo							,sortBoxNum,importNum,importDate,exportDate,phoneModel,zpuz,							rfpi,bigBatchNo,smallBatchNo,getdate()  							from #macSnInfo				set @error+=@@ERROR --記錄有可能產生的錯誤號  								---------------- 挪單刪除要先還原phoneInfo數量,再刪除				select @moveNo = ISNULL(amount,0) from #phoneInfo			--記錄挪單的數量				select @originalOrderNo = orderNo from #phoneInfo			--記錄原大單號(挪單前)				update phoneInfo set amount = amount+@moveNo					where	smallOrderNo=@originalOrderNo						and orderNo=@originalOrderNo						and (phoneModel=@phoneModel or @phoneModel='')						and (customer=@customer or @customer=''	)  				set @error+=@@ERROR --記錄有可能產生的錯誤號  				delete from phoneInfo										 --刪除挪單記錄					where	(smallOrderNo=@smallOrderNo or @smallOrderNo='') 						and (orderNo=@orderNo or  @orderNo='')						and (phoneModel=@phoneModel or @phoneModel='')						and (customer=@customer or @customer=''	)  				set @error+=@@ERROR --記錄有可能產生的錯誤號 				update macSnInfo set smallOrderNo = @originalOrderNo		 --恢復挪單前的小單號(原大單號)					where	(smallOrderNo=@smallOrderNo or @smallOrderNo='') 						and (orderNo=@orderNo or  @orderNo='')						and (phoneModel=@phoneModel or @phoneModel='')  									set @error+=@@ERROR --記錄有可能產生的錯誤號 				  			end  if(@error<>0 or @errerMsg<>'')    begin      rollback transaction  	select '-1' AS errorMsg    return -1 --設置操作結果錯誤標識  	  end  else    begin      commit transaction   	select '1' AS errorMsg    return 1 --操作成功的標識  	  end
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
91视频国产一区| 亚洲色图狂野欧美| 91色中文字幕| 亚洲精品乱码久久久久久按摩观| 91精品国产99| 亚洲一区二区中文字幕| 日韩电影免费在线观看中文字幕| 国产99久久精品一区二区| 欧美另类极品videosbest最新版本| 精品亚洲一区二区三区四区五区| 欧美最顶级的aⅴ艳星| 精品女同一区二区三区在线播放| 亚洲国产成人精品一区二区| 亚洲欧洲中文天堂| 国产精品av网站| 另类图片亚洲另类| 国产在线观看91精品一区| 日韩精品极品在线观看| 日韩美女中文字幕| 亚洲第一黄色网| 久久精品久久久久久| 国产精品免费一区二区三区都可以| 97久久伊人激情网| 欧美成人精品激情在线观看| 成人av在线网址| 欧美精品一本久久男人的天堂| 国产午夜精品全部视频在线播放| 久久综合亚洲社区| 国产日韩av在线| 久久好看免费视频| 日韩av电影免费观看高清| 日韩中文字幕在线精品| 丝袜一区二区三区| 中文字幕亚洲专区| 成人天堂噜噜噜| 欧美人在线观看| 国产精品扒开腿做爽爽爽男男| 精品久久久久久久久久国产| 国产精品欧美一区二区| 亚洲黄一区二区| 国产精品香蕉在线观看| 亚洲国产精品人人爽夜夜爽| 亚洲性线免费观看视频成熟| 96精品久久久久中文字幕| 92看片淫黄大片欧美看国产片| 欧美激情视频在线观看| 久久久久亚洲精品成人网小说| 俺去啦;欧美日韩| 亚洲精品国产免费| 另类天堂视频在线观看| 欧美在线视频免费播放| 在线播放亚洲激情| 日韩精品中文字幕在线观看| 国产成人午夜视频网址| 久久久精品一区| 久久精品欧美视频| 国产成人精品一区二区三区| 在线亚洲国产精品网| 最近2019年日本中文免费字幕| 日韩电影免费观看在线观看| 欧美精品激情在线观看| 精品视频在线播放色网色视频| 日本精品视频在线播放| 欧美性高潮床叫视频| 欧美精品在线第一页| 国产欧美日韩综合精品| 成人a在线观看| 亚洲国产欧美自拍| 高清欧美性猛交xxxx黑人猛交| 精品国产91久久久久久| 69久久夜色精品国产69| 国产精品美女久久久久av超清| 91在线观看免费| 久久久久久久国产精品视频| 日韩在线视频网站| 92版电视剧仙鹤神针在线观看| 久久久久国色av免费观看性色| 日本亚洲精品在线观看| 久久久精品国产亚洲| 午夜精品国产精品大乳美女| 国产精品福利无圣光在线一区| 日韩欧美第一页| 亚洲欧美精品一区二区| 亚洲激情视频在线观看| 亚洲国产精品99久久| 18一19gay欧美视频网站| 国产91在线高潮白浆在线观看| 91高清在线免费观看| 国产精品自产拍在线观看| 亚洲电影免费观看高清完整版在线观看| 国模精品一区二区三区色天香| 亚洲一区二区少妇| 亚洲色图35p| 韩国欧美亚洲国产| 性视频1819p久久| 国产精品看片资源| 国产a∨精品一区二区三区不卡| 精品国产网站地址| 国产成人av网| 亚洲综合大片69999| 狠狠躁天天躁日日躁欧美| 在线观看日韩av| 亚洲精品资源在线| 91精品国产91久久久久久吃药| 国产亚洲精品美女久久久久| 国产成人精品久久亚洲高清不卡| 亚洲美女在线视频| 欧美激情免费观看| 欧美性69xxxx肥| 国产成人涩涩涩视频在线观看| 亚洲第一男人天堂| 国产欧美日韩丝袜精品一区| 国产精品欧美在线| 亚洲欧美日韩精品| 午夜精品久久久久久久99热浪潮| 欧美成人精品在线观看| 91av在线免费观看视频| 久久久久亚洲精品国产| 中文字幕亚洲图片| 欧美日韩成人免费| 欧美精品videos另类日本| 日韩电影免费在线观看中文字幕| 亚洲欧美国产高清va在线播| 久久久视频在线| 伊人成人开心激情综合网| 国产成人亚洲综合91精品| 久久亚洲精品中文字幕冲田杏梨| 亚洲欧美制服第一页| 日韩免费在线播放| 欧美精品在线第一页| 亚洲影院污污.| 国内揄拍国内精品少妇国语| 亚洲永久在线观看| 亚洲欧美日韩爽爽影院| 亚洲japanese制服美女| 亚洲第一精品夜夜躁人人爽| 亚洲综合自拍一区| 日韩av在线看| 日本午夜人人精品| 亚洲护士老师的毛茸茸最新章节| 精品人伦一区二区三区蜜桃免费| 久久久伊人欧美| 正在播放亚洲1区| 国产日韩欧美黄色| 日韩中文字幕网站| 亚洲欧美变态国产另类| 精品亚洲aⅴ在线观看| 92国产精品久久久久首页| 亚洲欧美在线免费观看| 亚洲韩国欧洲国产日产av| 最近2019年好看中文字幕视频| 国产精品欧美亚洲777777| 午夜精品一区二区三区在线视| 日本亚洲欧美三级| 97视频免费在线观看| 国产精品丝袜高跟| 欧美大片在线看免费观看| 国产美女久久精品香蕉69| 亚洲一区美女视频在线观看免费| 国产成人91久久精品| 国产精国产精品| 日韩在线免费视频| 中文字幕欧美日韩| 国产精品电影网站|