저장 프로세스와 트리거

2683 단어
데이터베이스 학습 단계에서 을 자습하면서 트리거와 저장 과정을 접했다.기계실을 재구성할 때 처음으로 저장 과정을 진정으로 사용했고 코드의 사용량을 줄여 여러 테이블 간의 조작을 실현했다.지극히 편리하다!뱃살에서 정식으로 트리거를 한 번 사용해서 트리거와 저장 과정에 대해 어느 정도 알게 되었다.그들을 비교해 봤어!
촉발기의 재인식
트리거는 특수한 유형의 저장 프로세스로 이전에 우리가 소개한 저장 프로세스와 다르다.트리거는 주로 이벤트를 통해 트리거를 하고 자동으로 호출되어 실행됩니다.저장 프로세스는 저장 프로세스의 이름을 통해 호출될 수 있다.
트리거와 스토리지 프로세스의 차이점:
트리거와 저장 과정의 주요 차이는 트리거의 운행 방식에 있다.저장 프로세스는 반드시 사용자, 응용 프로그램 또는 트리거가 표시하는 호출과 실행이 있어야 한다. 트리거는 특정 시간에 나타날 때 자동으로 실행되거나 활성화되며 연결용 데이터베이스에 있는 사용자, 또는 응용 프로그램과 무관하다.한 줄이 삽입되거나 업데이트되거나 삭제될 때 트리거가 실행되는 동시에 트리거가 어떻게 만들어지는지에 따라 UPDATE가 발생할 때 업데이트 트리거를 사용하고 INSERT가 발생할 때 삽입 트리거를 사용하며 DELETE가 발생할 때 삭제 트리거를 사용한다.
저장 프로세스의 호출
<span style="font-family:KaiTi_GB2312;font-size:24px;"><span style="white-space:pre">	</span>///<summary>
        ///    ID           
        ///</summary>
        ///<paramname="caid">  ID</param>
        ///<returns></returns>
        publicDataTable SelectByCaId(string caid)
        {
            //TODO:    ID           
            DataTable dt = new DataTable();
            //      
            stringcmdText = "news_selectByCaId";
            SqlParameter[] paras = newSqlParameter[]{
              new SqlParameter("@caid",caid )
           };
           dt = sqlhelper.ExecuteQuery(cmdText, paras, CommandType.StoredProcedure);
            returndt;
        }</span>

메모리 프로세스를 호출하려면 메모리 프로세스의 이름을 통해 호출을 표시해야 합니다. 예를 들어 newsselectByCaId는 ExecuteQuery를 통해 호출해야 하는 저장 프로세스입니다.
저장 프로세스의 호출
<span style="font-family:KaiTi_GB2312;font-size:24px;">ALTER TRIGGER [dbo].[trigCategoryDelete]
   ON  [dbo].[category]
   Instead of  DELETE    -- Begin         
AS 
BEGIN
	declare @caId int 
	select @caId =id from deleted 
	--    		--in        
	delete comment where newsId in (select newsId from news where caId =@caId )
	delete news where caId=@caId		--   news 
	delete category where id =@caId		--   category 


	--select * from news 
	--delete news where caId=(select id from deleted )
END</span>

trigCategory Delete 트리거에 있는 instead of Delete는 삭제 작업이 실행될 때까지 이 말을 자동으로 실행합니다. 코드나 이벤트로 호출할 필요가 없습니다.
총결산
트리거는 비교적 높은 완전성 제약 조건으로 사용자 정의의 완전성이 해결할 수 없는 문제를 해결하고 데이터베이스의 완전성을 향상시킨다.저장 프로세스는 시스템의 실행 효율과 속도를 높이기 위해 만들어진 것이다. 저장 프로세스를 구축한 후 클라이언트는 EXEC로 저장 프로세스를 실행하기만 하면 되고 지루한 데이터베이스 select 코드를 실행하지 않아도 된다.트리거와 저장 프로세스는 매우 비슷하다고 할 수 있다. 트리거는 변종의 저장 프로세스라고 할 수 있다. 트리거는 저장 프로세스와 마찬가지로 SQL 문장집이다. 보통 트리거를 만들어서 서로 다른 표의 논리적 관련 데이터의 인용 완전성과 일치성을 강제로 실현한다.
감명
공부는 반복되는 과정으로 매번 공부할 때마다 다른 수확을 얻을 수 있다!

좋은 웹페이지 즐겨찾기