0
상황에 따라 테이블에 열이 10 개 있습니다. 프로그램에서 5 열을 삽입하고 5 열에 대해 트리거를 만들고 싶습니다. 가능한가? 그리고 그렇다면 어떻게 할 수 있습니까?트리거에 삽입하는 동안 데이터를 업데이트 한 다음 삽입하십시오.
COL1 COL2 COL3 col4 COL5 col6 col7 col8 col9 그것을 만들기 때문에 당신은 트리거 locsal 변수를 사용하지 말아야
CREATE TRIGGER Fill_Trigger
ON DB
AFTER INSERT
AS
BEGIN
-- SET NOCOUNT ON added to prevent extra result sets from
-- interfering with SELECT statements.
SET NOCOUNT ON;
-- Insert statements for trigger here
DECLARE @COL6 INT
DECLARE @COL7 INT -- and so on.
SET @COL6 = (SELECT COL1 FROM inserted) * (SELECT COL2 FROM inserted)
SET @COL7 = (SELECT COL3 FROM inserted) * (SELECT COL4 FROM inserted)
--Is it possible to do the following?
UPDATE inserted SET COL6 = @COL6
UPDATE inserted SET COL7 = @COL7
END
GO
나는 일부러이 부분은 "당신은 트리거 때문에에 locsal 변수를 사용하지 말아야 얻을 그것은 그것을 "단 하나의 행"으로 만든다 "라고 설명 할 수 있겠는가? 이 트리거에서 많은 일을하고 있기 때문에 변수를 사용해야합니다. 나는 CLR 함수를 호출하고있다. –
2 개 이상의 행을 삽입하면 변수가 가져올 값을 알 수 없습니다. 그것은 어떤 행에서 올 것입니다. 그리고 이것은 방아쇠가 너무 복잡해 보입니다. – gbn
OP의 샘플은 단지 예일뿐입니다. 여기에 약간 복잡한 계산이 있습니다. –