[SQL 2005 트리거 학습] - 3, 트리거의 대신.

5406 단어 sql2005
1. Instead Of 트리거의 작업 원리 Instead Of 트리거는 After 트리거의 작업 절차와 다르다.After 트리거는 SQLSERVER 서버에서 SQL 문장 실행 요청을 받은 후 Inserted와 Updated 임시 테이블을 만든 다음 물리 테이블의 데이터를 변경한 후에 트리거 프로그램을 활성화합니다.한편, Instead Of 트리거는 SQLSERVER 서버에서 SQL 문장을 실행하라는 요청을 받고 Inserted와 Updated 임시 테이블을 만든 후에 Instead Of 트리거 프로그램을 활성화시켰다. SQL 문장의 요청이 데이터를 어떻게 조작하는지는 상관하지 않고 집행권을 Instead Of 트리거에 전권을 주었다.2, Instead Of 트리거 사용 범위♣ 데이터 테이블의 데이터 수정 금지♣ 수정된 SQL 문장을 스크롤할 수 있습니다. 일부 판단은 실행하기 전에 해야 하기 때문에 After 트리거는 최선의 선택이 아닙니다. Instead Of 트리거가 더 적합합니다.    ♣ 시도에서 트리거를 사용합니다. 애프터 트리거는 보기에서 사용할 수 없습니다.    ♣ 자신의 방식으로 데이터를 수정하다.Instead Of 트리거로 데이터의 수정 방식과 절차를 제어할 수 있습니다.3. 주의사항 ☞ Instead Of 트리거와 After 트리거는 모두 임시 테이블에 세울 수 없습니다.☞ 동일한 데이터 테이블에서 모든 작업(Insert, Update, Delete)에 대해 Instead Of 트리거만 설정할 수 있습니다.☞ writetext 문장은 Insert와 update 유형의 트리거를 터치할 수 없습니다.☞ Truncate Table 문구는 Deleteuju와 유사하지만 트리거를 활성화하지 않습니다.4. Instead Of 트리거 인스턴스

  
    
Create Trigger OrderDetail_Insert
ON OrderDetail
Instead
Of Insert
AS
Begin
Set Nocount On ; /* Insert */
Declare @Orderid int , @Price money , @discount real
select @OrderId = OrderId, @Price = Price, @Discount = Discount from Inserted
if ( @Discount ) > 0.6
begin
print ' 0.6 '
end
else
begin
insert into OrderDetail(OrderId,Price,Discount) values ( @OrderId , @Price , @discount )
end
End

좋은 웹페이지 즐겨찾기