2017-12-28 1 views
0

나는 SP를 가지고 내가 삽입 된 값을 끌어하려고 바인딩하지만,이 코드는 오류 ::다중 부분 식별자 "INSERTED.ViolationId은"

다중 부분 식별자 "INSERTED를 트리거 할 수 없습니다. ViolationId은 "

SET NOCOUNT ON; 

INSERT INTO REPAIR (ViolationId,InspectorId,RepairCode,Status,RepairDate) VALUES 
(@ViolationId,@InspectorId,@RepairCode,@Status,getdate()) 

declare @GIGID int; 
SET @GIGID = (Select GIGID from Violation where [email protected]) 

UPDATE MasterGIG SET LastUpdate=getDate() where [email protected] 
+0

저장 프로 시저에'inserted'을 정의 했습니까? 방금 정의 된 것처럼 보이지 않습니다 (특정 유형의 트리거 제외). –

+1

삽입 된 것으로 예상되는 내용은 무엇입니까? 이전 명령문에 의해 삽입 된 행? 그런데'ViolationId', 즉'@violationID'를 무엇을 사용해야하는지에 대해서 말했습니까?'ViolationId ='@ ViolationID'에서'GiolID from Violation을 선택하십시오. 왜 당신은 (겉으로보기에) 당신이 새로 삽입 된 행을 통과해야한다고 생각합니까? X/Y 질문의 좋은 예일 수 있습니다. * 당신이하고 싶은 일을 설명하지 않고 현재 시도하고있는 방법 * 만 설명합니다. 처음으로 돌아가서 전자를 설명하면 더 나은 답변으로 이어질 것입니다. –

+1

INSERTED는 트리거 본문 (DELETED)에 사용되는 특수 테이블입니다. –

답변

0

declare @GIGID int; 
SELECT @GIGID = scope_identity() 
0

declare @GIGID int; 
SET @GIGID = (Select GIGID from Violation where [email protected]) 

를 교체 바인딩 수 없습니다

INSERTED 테이블은 트리거에서만 사용할 수 있습니다.

관련 문제