의 테이블에 대한 트리거 만드는 방법 : "RECORD_ID는"기본 키입니다나는 다음과 같은 테이블이 SQL 서버 2008
CREATE TABLE [RTS].[MFB]
(
[record_id] [int] IDENTITY(1,1) NOT NULL,
[marker_id] [nvarchar](50) NULL,
[lat] [numeric](38, 8) NULL,
[lng] [numeric](38, 8) NULL,
[address] [nvarchar](512) NULL,
[hash] [smallint] NULL,
[updated] [datetime] NULL,
[first_created_date] [datetime] NULL,
CONSTRAINT [PK_MFB_1]
PRIMARY KEY CLUSTERED ([record_id] ASC)
WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF,
IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY]
) ON [PRIMARY]
합니다.
INSERT
작업 후에 트리거를 만들어야합니다.
조건은 다음 marker_id
열이 새로운 경우
- 가
INSERT
상기 테이블에 기록하고 0으로 설정hash
칼럼; marker_id
이 이미있는 경우 새updated
열을 설정하여 기존 레코드UPDATE
을 저장합니다.marker_id
이 이미 존재하고 "lat", "lng"및 "address"중 하나가 변경된 경우 새로운 "lat", "lng"및/또는 "address"를 설정하여 기존 레코드를UPDATE
또한 "해시"를 "1"로 설정합니다.
기본적으로 MFB 테이블은 marker_id
과 중복되어서는 안됩니다.
트리거를 설정하여 어떻게이 작업을 수행 할 수 있습니까? 감사!
삽입, 업데이트 및 삭제 후에 트리거되므로 트리거를 통해 삽입 또는 업데이트 할 수 없습니다. 이 테이블의 이벤트를 기반으로 다른 테이블 (좋은 예는'LOG' 테이블)에 대해이 작업을 수행 할 수 있습니다. – Susang
방아쇠를 사용하지 말 것을 제안합니다. 'marker_id' 컬럼에 유일한 인덱스를 생성하고이 테이블에 대한 변경 사항이 이러한 비즈니스 규칙을 적용하는 저장 프로 시저를 통해서만 발생하는지 확인하십시오. 그럼에도 불구하고 이미 시도한 내용을 보여줄 필요가 있습니다. 아무도 코드를 작성하지 않습니다. –