2012-02-03 6 views
1

SQL 트리거가 암시 적으로 호출된다는 것을 알고 있습니다. SQL 서버에서 명시 적으로 트리거를 호출 할 수 있습니까?트리거를 명시 적으로 호출하십시오.

예인 경우 어떻게합니까?

덕분에

+5

아니요. 그리고 정의상 당신은 원하지 않거나해야합니다. 그것이 정말로 일반적인 논리라면, 저장된 proc 나 function에 넣으십시오. –

+0

번호 왜 당신이 원합니까? –

+1

이 작업을 수행하는 것은 매우 좋지 않지만 삽입 된 열과 삭제 된 열을 전달하려는 작업을 수행하는 저장된 proc을 만들 수 있습니다. 그런 다음 저장된 proc을 직접 호출 할 수 있습니다. –

답변

2

나는 당신이 명시 적으로 트리거를 호출하여 무엇을 의미하는지에 따라 달라집니다 같아요.

당신은 트리거가 기본 테이블에없는 데이터 변경으로 발광 할 수

: 결과와

create table T (ID int not null) 
go 
create trigger T_T on T after insert 
as 
    RAISERROR('Hello',10,1) WITH NOWAIT 
go 
insert into T(ID) 
select 1 where 1=0 

:

말했다되고 그건
Hello 

(0 row(s) affected) 

, 그것은 속임수의 비트, 그리고 @Mitch Wheat과 공통점이 있는데, 왜 그렇게하려고하는지 궁금합니다. "명시 적으로 트리거 호출"이 문제에 대한 솔루션의 일부인 경우 a) 아마도 잘못된 솔루션 일 수 있으며 b) 문제가 무엇인지 알면 더 나은 솔루션을 제안 할 수 있습니다.

관련 문제