저장 프로세스의 연합 사무

2073 단어
여러분!저장 프로세스에 관한 몇 편의 블로그를 기억하시죠!다음은 그것이 바로 연합사무라는 것을 더욱 깊이 이해하고 운용하여 그 장점을 충분히 발휘하도록 하자.
우선 저는 여기서 사무를 간단하게 소개합니다.
데이터베이스 트랜잭션(Database Transaction)은 단일 논리 작업 단위로 수행되는 일련의 작업을 말합니다.사무 처리는 사무성 단원 내의 모든 작업이 성공적으로 끝나지 않으면 데이터에 대한 자원을 영구적으로 업데이트하지 않을 수 있습니다.앞에서 사무를 소개했기 때문에, 여기서는 더 이상 말하지 않겠다.관련 링크 시작:
      http://blog.csdn.net/liu_yujie2011com/article/details/9004816
이어서 사무와 저장 과정이 기방 합작에서의 운용을 분석했다. 학생 정보를 등록할 때 세 장의 표: 학생표, 카드표, 충전표를 고려해야 한다.새로 등록된 정보를 이 몇 개의 표에 꽂았을 때 문제가 생겼다.한 장 한 장 꽂는 거예요?아니면 동시에 꽂을까요?답은 당연히 동시에 꽂아야 한다.그런데 문제가 또 생겼어요. 세 가지 메시지를 동시에 삽입하면 하나가 성공하지 못하면 어떡해요?이 때 업무는 쓸모가 있습니다. 데이터를 삽입할 때 오류가 발생하면 바로 스크롤하고 오류 정보를 알립니다.그럼 실천으로 들어갑시다!
프로세스 트랜잭션을 저장하는 코드:
ALTER PROCEDURE [dbo].[PROC_StudentRegister]
@studentID varchar(20) ,@Name varchar(20),@sex varchar(20),@department varchar(20),@grade varchar(20),@Classroom varchar(20),@explain varchar(20),@userID varchar(20),
@recharge money,@rechargeDate date,@rechargeTime time(7),@isCheck varchar(20),
@cardID varchar(20),@Balance money,@registerDate date,@registerTime time(7),@cardFix varchar(20),@state varchar(20)
AS  
Begin
	--  
	SET NoCOUNT ON;
	SET XACT_ABORT ON;
	begin Tran ok  --      
	
	--     
	insert into T_StudentInfo(studentID ,Name,sex,department,grade,Classroom,explain,userID) values (@studentID ,@Name,@sex,@department,@grade,@Classroom,@explain,@userID)  

	--    
	insert into T_CardInfo(cardID,Balance,registerDate,registerTime,cardFix,state,studentID,isCheck,userID) values(@cardID,@Balance,@registerDate,@registerTime,@cardFix,@state,@studentID,@isCheck,@userID)    
 
	--     
	insert into T_RechargeInfo(cardID,recharge,rechargeDate,rechargeTime,userID,isCheck) values(@cardID,@recharge,@rechargeDate,@rechargeTime,@userID,@isCheck)  
	
	if @@ERROR = 0  --         
		commit Tran ok--    
	else --  
		begin --    
			rollback Tran --    
	end
End

   
이상은 데이터베이스에 사무를 추가하는 것이고, 다른 하나는 코드에 추가하는 것이니, 지금은 소개하지 않겠습니다!앞으로의 학습에서 다시 천천히 연구하고 체득하자!

좋은 웹페이지 즐겨찾기